首页 > 其他分享 >The 2021 Shanghai Collegiate

The 2021 Shanghai Collegiate

时间:2023-01-17 15:22:52浏览次数:43  
标签:cur 5005 space int Shanghai long Collegiate 2021 mp

D-Zztrans 的班级合照

如果没有对序列大小关系的限制,只需要考虑 \(a_i\) 应该放在第一个序列还是第二个序列,我们定义 \(f_{i,j}\) 表示前 \(i\) 个数,第二个序列放了 \(j\) 个,第一个序列放了 \(i-j\) 个的方案。但是又考虑到数字相同时,放的顺序可以任意,所以我们直接把相同的数字 \(x\) 缩成一个点,设共有 \(t\) 个 \(x\),枚举分配给第一个序列 \(q\) 个 \(x\) ,分配给第二个序列 \(t-q\) 个 \(x\),这样 dp 就没有考虑顺序,所以最后乘以一个 \(t!\) 即可

然后虽然要三重循环,但是根本跑不满,大胆放心暴力 dp 即可。

查看代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mod=998244353;
int n,a[5005];
vector<int>v;
int f[5005][5005],fac[5005];
signed main(){
	fac[0]=1;
	for(int i=1;i<=5000;++i)fac[i]=fac[i-1]*i%mod;
	cin>>n;
	for(int i=1;i<=n;++i)cin>>a[i];
	f[0][0]=1;
	int num=1; 
	sort(a+1,a+1+n);
	for(int i=1;i<=n;++i){
		if(a[i]==a[i+1])num++;
		else v.push_back(num),num=1;
	}
	int cur=0;
	for(auto u:v){
		cur+=u;
		for(int j=0;j<=cur-j;++j){
			for(int k=0;k<=min(u,j);++k)f[cur][j]=(f[cur][j]+f[cur-u][j-k]*fac[u]%mod)%mod;
		}
	}
	cout<<f[n][n/2];
	return 0;	
}

H - 鸡哥的 AI 驾驶

就是你考虑二分时间 \(t\),然后 \(p\) 和 \(p+t\times v\) 做逆序对即可。
然后把同编号内部的减掉。
离散化或动态开点线段树。
代码又臭又长,不放了(

J - Alice and Bob-1

假设 Alice 所获价值为 \(|A|\),Bob 所获价值为 \(|B|\),本质都想使自己价值尽可能大。
由于所获价值都带有绝对值,因此对所有数取反并不会影响答案,我们不失一般性地
设 \(S=\sum_{i\in [1,n]}a_i \ge 0\),那么 \(|A|-|S-A|= \begin{cases} S\space\space\space\space\space\space\space\space\space\space\space\space(A\geq S)\\ 2A-S\space\space(0\leq A<S)\\ -S\space\space\space\space\space\space\space\space\space(A<0) \end{cases}\)

查看代码
#include<bits/stdc++.h>
using namespace std;
int n,a[5005];
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;++i)cin>>a[i];
	sort(a+1,a+n+1);
	long long ans1=0,ans2=0,ans3=0,ans4=0;
	for(int i=1;i<=n;i+=2)ans1+=a[i],ans2+=a[i+1];
	for(int i=n;i>=1;i-=2)ans3+=a[i],ans4+=a[i-1];
	cout<<max(abs(ans1)-abs(ans2),abs(ans3)-abs(ans4));
	return 0;
}

K - Alice and Bob-2

暴力搜索求 SG 函数,然后上 Nim 游戏的结论(异或和为 \(0\))。

查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
map<vector<int>,int>mp;
int SG(vector<int>cur){
    if(mp.count(cur)){
        return mp[cur];
    }
    set<int>v;
    for(int i=0;i<26;i++){
        if(!cur[i])continue;
        vector<int>to(cur);
        to[i]--;
        sort(to.begin(),to.end());
        v.insert(SG(to));
        for(int j=i+1;j<26;j++){
            if(cur[j]==0)continue;
            vector<int>nxt(cur);
            nxt[i]--;
            nxt[j]--;
            sort(nxt.begin(),nxt.end());
            v.insert(SG(nxt));
        }
    }
    for(int i=0;;i++)if(!v.count(i))return mp[cur]=i;
    return 0;
}
int t,n;
string s[15];
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>t;
	while(t--){
		mp.clear();
		cin>>n;
		int ans=0;
		for(int i=1;i<=n;++i){
			cin>>s[i];
			vector<int>cnt(26,0);
			for(int j=0;j<s[i].size();++j)cnt[s[i][j]-'a']++;
			sort(cnt.begin(),cnt.end());
			ans^=SG(cnt);
		}
		if(!ans)cout<<"Bob\n";
		else cout<<"Alice\n";
	}
	return 0;
}

标签:cur,5005,space,int,Shanghai,long,Collegiate,2021,mp
From: https://www.cnblogs.com/Forever1507/p/17057880.html

相关文章

  • 回顾 2021,展望 2022
    回顾在2021年初,部门经理因为个人职业规划提出离职,领导安排我接手部门经理的职位。我从潜心研究代码的开发者的角色转变为技术研发+管理,一开始是有些......
  • audition 2021 for Mac(au2021) v14.2直装版
    audition2021直装版哪里可以下载使用呢?audition2021mac版直装版是一款专业数字音频编辑软件,提供先进的音频混音、编辑和效果处理功能,专为音频和视频专业人员设计。无论是......
  • luogu P7323 [WC2021] 括号路径
    题面传送门为了方便,我们仅保留\((v,u,-w)\)的反向边。可以发现,如果某个点\(u\)到\(v_1,v_2\)同时有相同边权的边,那么\((v_1,v_2)\)就是一个合法的点对。因此可以这样暴力......
  • 2020-2021 ACM-ICPC Latin American Regional
    K-Keylogger就是你可以显然的发现一个\(O(n^3)\)级别的动态规划。设\(dp_{i,j}\)表示第\(i\)位密码,现在按的键是\(j\)的答案。然后发现矩阵的每一行是单调递......
  • 盖瑞特行业首创电动涡轮增压技术斩获2021美国汽车新闻PACE大奖
    领先的汽车行业差异化技术供应商盖瑞特(纳斯达克代码:GTX)日前凭借电动涡轮增压技术荣获了2021美国汽车新闻PACE大奖。PACE奖项全称为全球汽车供应商杰出创新贡献奖,旨在表彰对......
  • 20211217|写给一年后的培民的一封信
    亲爱的民:培民,见面如晤,没错这是一封来自一年前的信。自四月份考试结束,我就游荡于广州和深圳,记4.14下午自广州到深圳,第一站即是找立彬,我自知今年插本已是与我无缘,随即开始......
  • 20211217|写给一年后的立彬的一封信
    亲爱的彬:立彬,见面如晤,没错这是一封来自一年前的信。自四月份考试结束,我就游荡于广州和深圳,记4.14下午自广州到深圳,第一站即是找你,顶楼你留了门卡,大门你远程开,晚上下班我......
  • 2021年度总结|分别曲折
    202101分别毕业毕业季啦,宿舍社团朋友分别给自己立各种flag各种不舍202102牛年大吉年年暴富五人年初聚会(传统的第二年)202104考试工作考了一个毫无意义的试,然......
  • Media Encoder 2021 for Mac(ame 2021) v15.4.1中文直装版
    MediaEncoder2021中文版是一款优秀的视频音频编码器,能够将多种设备格式的音频或视频进行导出,提供了丰富的硬件设备编码格式设置以及专业设计的预设设置,方便用户导出与特定......
  • 上市公司环保补助数据、上市公司环保补贴数据、上市公司环境补助数据、上市公司环境补
    上市公司环保补助数据、上市公司环保补贴数据、上市公司环境补助数据、上市公司环境补贴数据(1990-2021)上市公司环保补助数据、上市公司环保补贴数据、上市公司环境补助数据......