zoukankan      html  css  js  c++  java
  • AtCoder Beginner Contest 100 题解

    A

    抽屉原理

    #include<bits/stdc++.h>
    using namespace std;
    
    int main(){
    	int a,b; cin>>a>>b;
    	if(a<=8 && b<=8) puts("Yay!");
    	else puts(":(");
    	return 0;
    }
    

    B

    特判 n==100 情况

    #include<bits/stdc++.h>
    using namespace std;
    
    int pow_(int x,int p){
    	int res=1;
    	while(p--) res=res*x;
    	return res;	
    }
    
    int main(){
    	int d,n; cin>>d>>n;
    	if(n==100) n++;
    	cout<<n*pow_(100,d)<<endl;
    	return 0;
    }
    

    C

    #include<bits/stdc++.h>
    using namespace std;
    
    int main(){
    	int n; cin>>n;
    	
    	int cnt=0;
    	while(n--){
    		int k; cin>>k;
    		while(!(k&1)) k>>=1, cnt++;
    	}
    	cout<<cnt<<endl;
    	return 0;
    }
    

    D

    枚举统计贡献时候三个属性( (u,v,w) )贡献的和是正还是负,然后对 (2^3) 种情况求个最大值。

    #include<bits/stdc++.h>
    using namespace std;
    #define rep(i,a,b) for(int i=(a);i<=(b);i++)
    
    typedef long long ll;
    const int N=1005;
    
    struct node{
    	ll u,v,w;
    }a[N], b[N];
    
    int f[4];
    
    bool cmp(node x,node y){
    	ll kx=x.u+x.v+x.w, ky=y.u+y.v+y.w;
    	return kx>ky;
    }
    
    int main(){
    	int n,m;
    	cin>>n>>m;
    	rep(i,1,n){
    		ll u,v,w; cin>>u>>v>>w;
    		a[i]={u,v,w};
    	}
    	
    	ll res=0;
    	rep(i,0,(1<<3)-1){
    		rep(j,0,2) f[j]=(i>>j&1)?1:-1;
    		
    		rep(p,1,n) b[p]={f[0]*a[p].u, f[1]*a[p].v, f[2]*a[p].w};
    		sort(b+1,b+1+n,cmp);	
    
    		ll rec=0;
    		rep(i,1,m) rec+=b[i].u+b[i].v+b[i].w;
    		res=max(res,rec);
    	}
    	cout<<res<<endl;
    	
    	return 0;
    }
    
  • 相关阅读:
    一次维护经历
    网络线用色环表示
    ★★★错误终于抓到了★★★
    帮别人装IBM本本花了两天
    好记忆不如烂笔头
    凌晨完成的内容
    好久没上网了!
    oseye问答和博文评论通知的设计思路
    简单四步设置debian的vps安全防护
    javascript 的call()与apply()的应用与区别
  • 原文地址:https://www.cnblogs.com/Tenshi/p/14594007.html
Copyright © 2011-2022 走看看