zoukankan      html  css  js  c++  java
  • Codeforces Round #574 (Div. 2) A B C D1

    Codeforces Round #574 (Div. 2)

    Drinks Choosing

    #include<bits/stdc++.h>
    using namespace std;
    const int N = 1e3+100;
    typedef long long ll;
    
    int n,k;
    int a[N];
    int b;
    int cnt=0;
    int main(){
    	cin >> n >> k;
    	for(int i=0;i<n;i++){
    		cin >> b;
    		a[b]++;
    	}
    	int cnt=(n+1)/2;
    	int sum=0;
    	for(int i=1;i<=k;i++){
    		if(cnt>=a[i]/2) cnt-=a[i]/2,sum+=a[i]/2*2,a[i]%=2;
    		else {
    			while(a[i]>=2&&cnt>0){
    				a[i]-=2;
    				cnt--;
    				sum+=2;
    			}
    		}
    		if(cnt==0) break;
    	}
    	for(int i=1;i<=k;i++){
    		if(cnt==0) break;
    		if(a[i]>0){
    			a[i]--;
    			cnt--;
    			sum++;
    		}
    	}
    	cout << sum << endl;
    	return 0;
    }
    

      B Sport Mafia

    假设 a 为操作1执行次数,b为操作2执行次数

    a + b = n

    1 + ( a - 1 ) * a / 2 - b = k

    解方程

    #include<bits/stdc++.h>
    using namespace std;
    const int N = 1e3+100;
    typedef long long ll;
    
    ll n,k;
    int main(){
    	cin >> n >> k;
    	ll x=(-3+sqrt((n+k)*8+9))/2;
    	cout << n - x  << endl;
    	return 0;
    }
    

      CBasketball Exercise

    dp[i][j] 表示选第 j 行第 i 个数的最大值

    dp[i][j] = max( dp[i-1][j^1] , dp[i-2][j] , dp[i-2][j^1] );

    #include<bits/stdc++.h>
    using namespace std;
    const int N = 1e5+100;
    typedef long long ll;
    
    int n;
    ll a[2][N];
    ll dp[N][2];
    int main(){
    	cin >> n;
    	for(int i=1;i<=n;i++){
    		cin >> a[0][i];
    	}
    	for(int i=1;i<=n;i++){
    		cin >> a[1][i];
    	}
    	ll ma=0;
    	for(int i=1;i<=n;i++){
    		for(int j=0;j<2;j++){
    			dp[i][j]=max(dp[i][j],dp[i-1][(j+1)%2]+a[j][i]);
    			dp[i][j]=max(dp[i][j],dp[i-2][j]+a[j][i]);
    			dp[i][j]=max(dp[i][j],dp[i-2][(j+1)%2]+a[j][i]);
    			ma=max(dp[i][j],ma);
    		}
    	}
    	cout << ma << endl;
    	return 0;
    }
    

      D1Submarine in the Rybinsk Sea (easy edition)

    每个数在 i 位都加了 n 次

    #include<bits/stdc++.h>
    using namespace std;
    const int N = 1e5+100;
    typedef long long ll;
    #define mod 998244353
    
    int n;
    ll a[N];
    
    ll qpow(ll x,int y){
    	ll res=1;
    	while(y){
    		if(y&1) res=res*x%mod;
    		x=x*x%mod;
    		y/=2;
    	}
    	return res;
    }
    int main(){
    	cin >> n;
    	ll sum = 0;
    	ll res=0;
    	for(int i=0;i<n;i++){
    		cin >> a[i];
    		int cnt=0;
    		sum = a[i];
    		while(sum){
    			res=(res + sum%10*n%mod*qpow(10,cnt)%mod)%mod;
    			cnt++;
    			res=(res + sum%10*n%mod*qpow(10,cnt)%mod)%mod;
    			cnt++;
    			sum/=10ll;
    		}
    	}
    	
    	
    	cout << res << endl;
    	return 0;
    }
    

      

  • 相关阅读:
    前端知识体系
    DOMContentLoaded与load的区别
    最佳网页宽度及其实现
    一些颜色工具网站
    Firebug入门指南
    CSS中背景图片定位方法
    字符编码笔记:ASCII,Unicode 和 UTF-8
    学JS的书籍
    深入理解定位父级offsetParent及偏移大小
    event——事件对象详解
  • 原文地址:https://www.cnblogs.com/YJing814/p/11205530.html
Copyright © 2011-2022 走看看