牛客周赛39


title: 牛客周赛39
date: 2024-04-07 21:42:57
tags: 赛后思考与总结
categories: 比赛

A

思路

a[1] * 30 < sum 即可

代码

int a[7];
void solve()
{
	int sum = 0;
	for(int i = 1; i <= 6; i ++) cin >> a[i],sum += a[i];
	
	if(a[1] * 30 <	sum) cout << "Yes" << endl;
	else cout << "No" << endl;
}

B

思路

贪心,从最小的开始取,最后不满足k的有多少组就是答案

代码

void solve()
{
	int n,k;
	cin >> n >> k;
    vector<int> a(n + 1);
	ll sum = 0;
	for(int i = 1; i <= n ; i++){
		cin >> a[i];
        sum += a[i];
	}
	if(sum % k == 0){
        cout << 0 << endl;
        return;
    }
    sort(a.begin() + 1,a.end());
    
    ll ans = 0;
    int cnt = 0;
    for(int i = 1; i <= n ; i++){
    	ans += a[i];
        cnt ++;
        if(ans >= k){
            ans %= k;
            if(ans) cnt = 1;
            else cnt = 0;
        }
       
    }
	cout << cnt << endl;
}

C

思路

将每个数模3,那么问题就转化成能够构成3的倍数,每个组合求一下,{1,1,1},{1,2},{0}。

代码

void solve()
{
	int n,p;
	cin >> n >> p;
	map<int,int> mp;
	vector<int> a(n + 1);
	for(int i = 1 ; i <= n ; i++){
		cin >> a[i];
		a[i] %= p;
		mp[a[i]] ++;
	}
	
	if(mp[0]) cout << 1 << endl;
	else if(mp[1] && mp[2]) cout << 2 << endl;
	else if(mp[1] >= 3) cout << 3 << endl;
	else if(mp[2] >= 3) cout << 3 << endl;
	
}

D

思路

最短路算法,同样也是取模,问题就转化成寻找 (x + a[i]) % p == 0的最短路径,最先出现的肯定是最短的

代码


ll n,p,cnt,ans,a[N],f[N],d[N];

queue<PII> q;

void solve()
{
	cin >> n >> p;
	for(int i = 1; i <= n; i ++){
		int x; cin >> x;
		x %= p;
		if(d[x] == 0){
			d[x] = 1;
			a[++cnt] = x;
			q.push({x,1});
		}
	}
	
	n = cnt;
	while(q.size()){
		auto [x,y] = q.front();
		q.pop();
		
		for(int i = 1; i <= n ; i++){
			ll nx = (x + a[i]) % p;
			if(d[nx] == 0){
				q.push({nx,y + 1});
				d[nx] = y + 1;
			}
		}
		
		if(d[0]){
			ans = d[0];
			break;
		}
	}
	
	cout << ans << endl;
}

E

思路

n * m * p肯定超时,优化一下,根据面积公式 (i * j + 2 * k * (i + j))可以转化为,在枚举每一个长和宽的时候,他对应的合法高度为多少,将合法高度累加即是答案

代码

void solve()
{
    int n,m,p;
    cin >> n >> m >> p;
    int x; cin >> x;
    int ans = 0;
    for(int i = 1; i <= n; i ++){
        for(int j = 1; j <= m; j ++){
            int sum = x - i * j;
            if(sum > 0 && sum % (2 * (i + j)) == 0){
                int k = sum / (2 * (i + j));
                if(k <= p) ans ++;
                //cout << i << ' ' << j << ' ' << k << endl;
            }
        }
    }
     
    cout << ans << endl;
     
}

F

思路

不能理解 n 2 n ^ 2 n2 能够过,但是暴力是真牛逼

代码

void solve()
{
    int n; cin >> n;
    string a,b;
    cin >> a >> b;
    a = " " + a;
    b = " " + b;
    int ans = 0;
    for(int i = 1;  i<= n ; i++) if(a[i] == b[i] && a[i] == '1') ans ++;
    int q; cin >> q;
    while(q --){
        char op[2];
        int l,r;
        cin >> *op >> l >> r;
        if(*op == 'A'){
            for(int i = l;  i<= r ; i++) {
                if(a[i] == '0' && b[i] == '1') ans ++;
                a[i] = '1';
            }
        }
        else {
            for(int i = l; i <= r; i ++) {
                if(a[i] == '1' && b[i] == '0') ans ++;
                b[i] = '1';
            }
             
        }
         
         
         
        cout << ans << endl;
    }
     
     
}

相关推荐

  1. 39

    2024-04-11 20:18:06       14 阅读
  2. Round 39vp(A--F)

    2024-04-11 20:18:06       10 阅读
  3. 26

    2024-04-11 20:18:06       36 阅读
  4. 45

    2024-04-11 20:18:06       8 阅读
  5. Round 30(A~E)

    2024-04-11 20:18:06       32 阅读
  6. Round31-小白感悟

    2024-04-11 20:18:06       28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-11 20:18:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-11 20:18:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-11 20:18:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-11 20:18:06       20 阅读

热门阅读

  1. Cmake学习笔记3

    2024-04-11 20:18:06       14 阅读
  2. Nginx 调优面试题

    2024-04-11 20:18:06       12 阅读
  3. [CF825F] String Compression 题解

    2024-04-11 20:18:06       13 阅读
  4. 蓝桥杯刷题文件(包含多道练习题)

    2024-04-11 20:18:06       16 阅读
  5. 5.安全列

    2024-04-11 20:18:06       14 阅读
  6. Day2 字符串哈希&KMP

    2024-04-11 20:18:06       15 阅读
  7. AI副业赚钱资讯合集

    2024-04-11 20:18:06       13 阅读
  8. Cloudflare是什么?有什么用途?怎么购买

    2024-04-11 20:18:06       18 阅读