The 1st Universal Cup Stage 12: ̄Ookayama, April 15-16, 2023 题解

news2025/2/28 2:47:08

A XOR Tree Path

给一颗树,树上点有黑白两色,每次可以选一个叶子节点,翻转其到根路径上所有点的颜色,问最大黑色点数。
树dp

#include<bits/stdc++.h> 
using namespace std;
#define MAXN (100000+10)
#define ll long long
#define F (100000000)
#define Rep(i,n) for(int i=0;i<n;i++)
#define next Next
int n,edge[MAXN*2],pre[MAXN],next[MAXN*2],Size=0;
int f[MAXN][2];
int a[MAXN];
int g[2];
void addedge(int u,int v)
{
	edge[++Size]=v;
	next[Size]=pre[u];
	pre[u]=Size;
}
void dfs(int x,int father)
{
	bool lef=1;
	int g[2];
	for (int p=pre[x];p;p=next[p])
	{
		int &v=edge[p];
		if (v!=father)
		{
			dfs(v,x);
			if(lef) {
				f[x][0]=g[0]=f[v][0];
				f[x][1]=g[1]=f[v][1];
				lef=0;
			}
			else {
				f[x][0]=max(g[0]+f[v][0],g[1]+f[v][1]);
				f[x][1]=max(g[1]+f[v][0],g[0]+f[v][1]);
				g[0]=f[x][0],g[1]=f[x][1];
			}
		}
	}	
	
	if(lef) f[x][0]=a[x],f[x][1]=a[x]^1;
	else f[x][0]+=a[x],f[x][1]+=a[x]^1;
}
int main()
{
//	freopen("a.in","r",stdin);
	scanf("%d",&n);
	memset(pre,0,sizeof(pre));
	memset(next,0,sizeof(next));
	for(int i=1;i<=n;i++) cin>>a[i];
	for (int i=1;i<n;i++)
	{
		int u,v;
		scanf("%d%d",&u,&v);
		addedge(u,v);addedge(v,u);
	}
	dfs(1,0);	
	cout<<max(f[1][0],f[1][1]);
	return 0;
}

B Magical Wallet

You have a magical wallet with X yen in it. (Yen is the currency of Japan.)
Using the magic on this wallet, you can rearrange the amount of money in the wallet as a decimal string
in any order you like. For example, if you have a magical wallet with 120 yen, you can use magic to change
the amount of money in the wallet to any of the following: 12 yen, 21 yen, 102 yen, 120 yen, 201 yen, or
210 yen (leading zeros are ignored).
You will now visit N shops with the magical wallet in order. At the i-th shop (1 ≤ i ≤ N ), a product
costing Ai yen is sold, and if the magical wallet contains at least Ai yen, you can pay Ai yen from the
magical wallet to buy the product.
You can use magic as much as you like whenever you want. How many products can you buy at most?

直接暴力模拟过程

#include<bits/stdc++.h> 
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define ForkD(i,k,n) for(int i=n;i>=k;i--)
#define Rep(i,n) for(int i=0;i<n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define RepD(i,n) for(int i=n;i>=0;i--)
#define Forp(x) for(int p=pre[x];p;p=next[p])
#define Forpiter(x) for(int &p=iter[x];p;p=next[p])  
#define Lson (o<<1)
#define Rson ((o<<1)+1)
#define MEM(a) memset(a,0,sizeof(a));
#define MEMI(a) memset(a,0x3f,sizeof(a));
#define MEMi(a) memset(a,128,sizeof(a));
#define MEMx(a,b) memset(a,b,sizeof(a));
#define INF (0x3f3f3f3f)
#define F (1000000007)
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define vi vector<int> 
#define pi pair<int,int>
#define SI(a) ((a).size())
#define Pr(kcase,ans) printf("Case #%d: %lld\n",kcase,ans);
#define PRi(a,n) For(i,n-1) cout<<a[i]<<' '; cout<<a[n]<<endl;
#define PRi2D(a,n,m) For(i,n) { \
						For(j,m-1) cout<<a[i][j]<<' ';\
						cout<<a[i][m]<<endl; \
						} 
#pragma comment(linker, "/STACK:102400000,102400000")
#define ALL(x) (x).begin(),(x).end()
#define gmax(a,b) a=max(a,b);
#define gmin(a,b) a=min(a,b);
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
ll mul(ll a,ll b){return (a*b)%F;}
ll add(ll a,ll b){return (a+b)%F;}
ll sub(ll a,ll b){return ((a-b)%F+F)%F;}
void upd(ll &a,ll b){a=(a%F+b%F)%F;}
inline int read()
{
	int x=0,f=1; char ch=getchar();
	while(!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar();}
	while(isdigit(ch)) { x=x*10+ch-'0'; ch=getchar();}
	return x*f;
} 
vi get(int x) {
	stringstream ss;
	ss<<x;
	char s[6];
	ss>>s;
	int m=strlen(s);
	vi v;
	sort(s,s+m);
	do{
		stringstream ss;
		ss<<s;
		int p;ss>>p;
		v.pb(p);
//		cout<<p<<" ";
	}while(next_permutation(s,s+m));
	return v;
}
#define MAXX (10000+10)
int f[101][MAXX];
vi v[MAXX];
int main()
{
//	freopen("B.in","r",stdin);
//	freopen(".out","w",stdout);
	int n,x;
	Rep(i,1e4) {
		v[i]=get(i);
	}
//	Rep(i,20) {
//		for(int j:v[i]) cout<<j<<' ';cout<<endl;
//	}
	cin>>n>>x;
	get(x);
	MEMi(f)
	for(int i:v[x])f[0][i]=0;
	Rep(i,n) {
		int cx=read();
		Rep(j,10000)gmax(f[i+1][j],f[i][j])
		Rep(j,10000) {
			if(f[i][j]>=0 && j>=cx) {
				for(int k:v[j-cx])
					gmax(f[i+1][k],f[i][j]+1)
			}
		}
	} 
	int t=0;
	Rep(j,10000) gmax(t,f[n][j])
	cout<<t<<endl;	
	return 0;
}

E Five Med Sum

在这里插入图片描述
枚举中位数,注意可以事先给A-E数组定个顺序,以防算重。

#include<bits/stdc++.h> 
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define ForkD(i,k,n) for(int i=n;i>=k;i--)
#define Rep(i,n) for(int i=0;i<n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define RepD(i,n) for(int i=n;i>=0;i--)
#define Forp(x) for(int p=pre[x];p;p=next[p])
#define Forpiter(x) for(int &p=iter[x];p;p=next[p])  
#define Lson (o<<1)
#define Rson ((o<<1)+1)
#define MEM(a) memset(a,0,sizeof(a));
#define MEMI(a) memset(a,0x3f,sizeof(a));
#define MEMi(a) memset(a,128,sizeof(a));
#define MEMx(a,b) memset(a,b,sizeof(a));
#define INF (0x3f3f3f3f)
#define F (998244353)
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define vi vector<int> 
#define pi pair<int,int>
#define SI(a) ((a).size())
#define Pr(kcase,ans) printf("Case #%d: %lld\n",kcase,ans);
#define PRi(a,n) For(i,n-1) cout<<a[i]<<' '; cout<<a[n]<<endl;
#define PRi2D(a,n,m) For(i,n) { \
						For(j,m-1) cout<<a[i][j]<<' ';\
						cout<<a[i][m]<<endl; \
						} 
#pragma comment(linker, "/STACK:102400000,102400000")
#define ALL(x) (x).begin(),(x).end()
#define gmax(a,b) a=max(a,b);
#define gmin(a,b) a=min(a,b);
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
ll mul(ll a,ll b){return (a*b)%F;}
ll add(ll a,ll b){return (a+b)%F;}
ll sub(ll a,ll b){return ((a-b)%F+F)%F;}
void upd(ll &a,ll b){a=(a%F+b%F)%F;}
inline int read()
{
	int x=0,f=1; char ch=getchar();
	while(!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar();}
	while(isdigit(ch)) { x=x*10+ch-'0'; ch=getchar();}
	return x*f;
} 
//class node{
//	int x,t;
//	bool friend operator<(node a,node b) {
//		if(a.x<b.x)
//	}
//};
vector<pair<int,int > > v[5];
int main()
{
//	freopen("E.in","r",stdin);
//	freopen(".out","w",stdout);
	int n=read();
	Rep(j,5) {
		For(i,n) v[j].pb(mp(read(),j) );
		sort(ALL(v[j]));
	}
	ll ans=0;
	Rep(j,5) {
		Rep(i,n) {
			int p=v[j][i].fi;
			vi L,R;
			
			Rep(k,5) if(k^j) {
				int l=lower_bound(ALL(v[k]),v[j][i])-v[k].begin();
				int r=v[k].end()-lower_bound(ALL(v[k]),v[j][i]);
				L.pb(l),R.pb(r);
			}
			Rep(p1,3) Fork(p2,p1+1,3) {
				ll c=mul(L[p1],L[p2]);
				Rep(t,4) if(t!=p1 && t!=p2) c=mul(c,R[t]);
				upd(ans,mul(c,p));
			}
		}
	}
	cout<<ans;
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/426701.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计及氢能的综合能源优化调度研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

使用国密SSL证书,实现SSL/TLS传输层国密改造

密码是保障网络空间安全可信的核心技术和基础支撑&#xff0c;通过自主可控的国产密码技术保护重要数据的安全&#xff0c;是有效提升我国信息安全保障水平的重要举措。因此&#xff0c;我国高度重视商用密码算法的应用并出台相关政策法规&#xff0c;大力推动国产商用密码算法…

.Net MVC中 视图如何使用路由!!!

配置路由 app.UseEndpoints(endpoints > { endpoints.MapControllerRoute( name: "default", pattern: "{controllerHome}/{actionIndex}/{id?}"); }); 在视图中使用路由 页面跳转常用的路由设置 标签属性 描述 asp-action 指定…

STL容器总结

1.Vector&#xff1a; 本质是动态数组&#xff0c;拥有一段连续的内存空间&#xff0c;并且起始地址不变&#xff0c;能非常好的支持随机存取&#xff0c;即[]操作符&#xff0c;但由于它的内存空间是连续的&#xff0c;所以在中间进行插入和删除会造成内存块的拷贝&#xff0c…

C++之 文件操作(file operation)

目录 引言 一、文本文件 1、写文件 2、读文件 二、二进制文件 1、写文件 2、读文件 引言 程序运行时产生的数据属于临时数据&#xff0c;程序一旦运行结束后&#xff0c;数据也会被释放 通过文件可以将数据保存以持久化 在C中&#xff0c;对文件进行操作要写头文件<f…

图染色问题的NP完全性证明

文章目录1.Overview2.CNF 3-sat3. Gadgets3.1 Concolorous Edges3.2 Starter/Variable Gadget3.3 Splitter Gadget3.4 OR Gadget3.5 Clause Gadget4. To Planar Graph最近在学 6.890&#xff0c;然后 devans 刚好问了我这个问题&#xff0c;然后尝试编了一个证明。 1.Overview…

功能测试面试没人要了!软件自动化测试如何入门?

对于我来说&#xff0c;我做的是web端的测试&#xff0c;做测试也有好几个年头了&#xff0c;每次都是使用手工测试的话&#xff0c;一直是做重复性的工作&#xff0c;既枯燥又繁琐&#xff0c;所以我在两年前自己使用java语言写了一系列的自动化测试脚本&#xff0c;利用的框架…

Java数据结构与算法----动态规划(背包篇)

1. 0/1背包 1.1.算法思路 0/1背包是动态规划、背包问题中最经典的问题啦&#xff01;它主要的问题是&#xff1a; 给定n种物品、这n种物品的重量分别是&#xff0c;价值分别是 &#xff0c;而你有一个容量为C的背包&#xff0c;请问如何求出所能拿的最大价值呢&#xff1f; …

嵌入式开发——串口常见问题和调试手段

1、串口介绍 参考博客&#xff1a;《ARM芯片&#xff08;S5PV210芯片&#xff09;——串口通信详解》、《UART和RS232、RS485的联系和区别、以及对软件编程的影响》&#xff1b; 2、串口常见问题 (1)内核没有开启串口&#xff0c;导致没有产生设备节点&#xff1b; (2)上层应用…

运动想象脑电信号数据集及其预处理方法

脑电信号基础知识 在BCI应用中,获取脑信号的途径包括多种技术方式。其中,EEG是最适合脑机接口应用的技术,主要因为无创性、便携式和高时间分辨率是其的优势。EEG是记录头部表面不同位置之间电位差异的时间记录,它起源于分布在大脑皮层的数百万个神经元的同步电活动的总和。…

我把Solon打包成了native image,速度快的惊人

Solon 一个高效的应用开发框架&#xff1a;更快、更小、更简单。https://solon.noear.org/ 我刚开始对 Solon 感兴趣的原因&#xff0c;就是启动快、包体积小&#xff0c;用了一段时间之后&#xff0c;发现 Solon 使用 GraalVM native iamge 打包有一些问题&#xff0c;我把问题…

Cache;高速缓冲存储器

高速缓冲存储器 概述 ​ 在多体并行存储系统中&#xff0c;由于IO设备向主存请求的级别高于CPU访存&#xff0c;这就出现了CPU等待IO设备访存的现象&#xff0c;导致CPU空等一段时间&#xff0c;甚至等待几个周期&#xff0c;从而降低了CPU的工作效率&#xff0c;为了避免CPU…

Eclipse环境搭建并且运行wordcount程序

一、安装Hadoop插件 1. 所需环境 hadoop2.0伪分布式环境平台正常运行 所需压缩包&#xff1a;eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz           在Linux环境下运行的eclipse软件压缩包,解压后文件名为eclipse           hadoop2x-eclipse-plugin-m…

【Mysql】事物处理(TransAction Processing)

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE初阶最近在复习mysql&#xff0c;复习到了mysql事物处理&#xff08;TransAction&#xff09;&#xff0c;帮自己回顾一下&#xff0c;如果你也想了解什么是mysql的事物处理&#xff0c;希望这篇…

【SQL Server】无需公网IP,就可以远程连接SQL Server数据库

目录 1.前言 2.本地安装和设置SQL Server 2.1 SQL Server下载 2.2 SQL Server本地连接测试 2.3 Cpolar内网穿透的下载和安装 2.3 Cpolar内网穿透的注册 3.本地网页发布 3.1 Cpolar云端设置 3.2 Cpolar本地设置 4.公网访问测试 5.结语 1.前言 数据库的重要性相信大家…

基于html+css的自适应展示3

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

MySQL--库的操作--校验规则对于数据库的影响--0409

目录 1.库的基础操作 查看数据库 创建数据库 删除数据库 查看建库语句 修改数据库 2.字符集和字符集校验规则 2.1 查看系统默认字符集以及校验规则 2.2 使用特定的字符集创建数据库 2.3 不同校验规则对数据库的影响 2.3.1 大小写验证 2.3.2 排序验证 3.备份和恢复 3.1…

开启单细胞及空间组学行业发展黄金时代!首届国际单细胞及空间组学大会在穗闭幕

2023年4月16日&#xff0c;首届TICSSO国际单细胞及空间组学大会圆满闭幕&#xff0c;本次大会吸引了2000余位来自产、学、研、资、医、政、媒等业界人士齐聚羊城&#xff0c;注册总人数5398人&#xff0c;网络播放总量达548245人次&#xff0c;网络观看覆盖美国、德国、日本、澳…

Vue语法糖<script setup>详解,用最快的方式让你看懂和<script>的区别

前言 Vue3出来已经3年了&#xff0c;但是前两天在百度上搜索有关setup语法糖的细节时&#xff0c;发现很多博客关于语法糖细节部分&#xff0c;还是讲的很粗糙&#xff0c;因此决定自己来写一篇入门的博客&#xff0c;方便大家快速上手。 <script setup>简介 它是Vue3…

关于ASP.NET MVC与.NET CORE 的区别--小结

简述关于ASP.NET MVC与.NET CORE的区别 1、关于ASP.NET 关于MVC 刚开始接触这个技术的时候我经常不理解他们的名字&#xff0c;我相信许多学ASP.NET开发人员开始接触MVC应该也和我一样产生很多为什么&#xff0c;也会误认为认为MVC与ASP.NET完全没有关系&#xff0c;是一个全新…