Acwing第 34 场周赛完结

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acwing第 34 场周赛完结相关的知识,希望对你有一定的参考价值。

目录

4209. 三元组【签到】


https://www.acwing.com/problem/content/4212/

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],b[N],c[N],n;
int main(void)

	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i]>>b[i]>>c[i],a[0]+=a[i],b[0]+=b[i],c[0]+=c[i];
	if(!a[0]&&!b[0]&&!c[0]) puts("YES");
	else puts("NO");
	return 0;

4210. 数字【进制转换】


https://www.acwing.com/problem/content/4213/

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
LL sum,n;
LL solve(int n,int x)

    LL sum=0;
    while(n) sum+=n%x,n/=x;
    return sum;

LL gcd(LL a,LL b)return b?gcd(b,a%b):a;
int main(void)

    cin>>n;
    for(int i=2;i<=n-1;i++) sum+=solve(n,i);
    LL temp=gcd(sum,n-2);
    cout<<sum/temp<<"/"<<(n-2)/temp;
	return 0;

4211. 序列重排【dfs爆搜】


https://www.acwing.com/problem/content/4214/

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int N=110;
LL a[N],n,flag;
map<LL,int>mp; 
vector<LL>path,ans;
void dfs(LL u,int index)

	if(index==n-1)
	
		flag=1;ans=path;
		return;
	
	if(mp[u*2]) 
	
		path.push_back(u*2),mp[u*2]--;
		dfs(u*2,index+1);
		path.pop_back(),mp[u*2]++;
	
	if(u%3==0&&mp[u/3])
	
		path.push_back(u/3),mp[u/3]--;
		dfs(u/3,index+1);
		path.pop_back(),mp[u/3]++;
	

int main(void)

	cin>>n;
	for(int i=0;i<n;i++) cin>>a[i],mp[a[i]]++;
	for(int i=0;i<n;i++) //枚举每一个数作为开头
	
		path.clear(),path.push_back(a[i]);
		mp[a[i]]--;
		dfs(a[i],0);
		if(flag)
		
			for(int i=0;i<ans.size();i++) cout<<ans[i]<<" ";
			return 0;
		
		mp[a[i]]++;
	
	return 0;

你会发现2因子的数量只会越来越多,3因子的数量只会越来越少。

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int N=1e5;
struct nodeLL a,x,y;Node[N];
int n;
int get(LL x,LL m)

	int cnt=0;
	while(m%x==0) cnt++,m/=x;
	return cnt;

bool cmp(node a,node b)

	if(a.x!=b.x) return a.x<b.x;
	return a.y>b.y;

int main(void)

	cin>>n;
	for(int i=0;i<n;i++) cin>>Node[i].a;
	for(int i=0;i<n;i++)
	
		Node[i].x=get(2,Node[i].a);
		Node[i].y=get(3,Node[i].a);
	
	sort(Node,Node+n,cmp);
	for(int i=0;i<n;i++) cout<<Node[i].a<<" ";
	return 0;

以上是关于Acwing第 34 场周赛完结的主要内容,如果未能解决你的问题,请参考以下文章

Acwing第 53 场周赛完结

Acwing第 31 场周赛完结

Acwing第 56 场周赛完结

Acwing第 32 场周赛完结

Acwing第 59 场周赛完结

Acwing第 35 场周赛完结