【Codeforces】Codeforces Round 905 (Div. 3)

Problem - 1883C - Codeforces

这题当时想复杂了。

题目大意:

给一串数组和一个数字k,求对数组进行多少次操作能是他们的乘积是k的倍数。

操作是选定一个数加上1。

这题需要抓住一个点k属于2,5,2,3,4,5中只有4是合数需要特殊判断,别的直接用k-ai%k就能求解。

cpp 复制代码
#include<bits/stdc++.h>
const int N=1e5+10;
int a[N];
void solve()
{
	memset(a,0,sizeof a);
    int n,k;
    std::cin>>n>>k;
    int m=1e9;
    for(int i=1;i<=n;i++)
    {
    	std::cin>>a[i];
		if(a[i]%k==0)
		{
			m=0;
		}	 
		m=std::min(m,k-a[i]%k);
	} 
	int c1=0,c2=0;
	if(k==4)
	{
		for(int i=1;i<=n;i++)
		{
			if(a[i]%2==1) c1++;
			else c2++;
		}
		if(c2>=2) m=0;
		else if(c2==1) m=std::min(m,1);
		//其余情况都是2 
		m=std::min(m,2);
	}
	std::cout<<m<<'\n'; 
}
signed main()
{
    int t; 
	std::cin>>t;
    while(t--)
    {
       solve();
    }
    return 0;
}

Problem - D - Codeforces

题目大意:

q次操作,插入或删除区间,最后判断,是否存在不相交的区间,有则输出yes。

也就是判断是否所有区间都相交,是则输出no,否则yes。

看图就很容易有思路,把左端点和右端点分别存入map,排序判断就好。

还是要熟练使用stl才行啊

cpp 复制代码
#include<bits/stdc++.h>
std::map<int,int> l;
std::map<int,int> r;
void solve()
{
	char a;
	int b,c;
	std::cin>>a>>b>>c;
	if(a=='+')
	{
		l[b]++;
		r[c]++;
	}else{
		auto h=l.find(b);
		h->second--;
		if(h->second==0) l.erase(h);
			
		auto hh=r.find(c);
		hh->second--;
		if(hh->second==0) r.erase(hh);
	}
	if(l.empty()||l.rbegin()->first<=r.begin()->first)
	{
		std::cout<<"No\n";
	}else std::cout<<"Yes\n";
}
signed main()
{
	int t;
	std::cin>>t;
	while(t--)
	{
		solve();
	}
	return 0;
}
相关推荐
郝学胜-神的一滴17 分钟前
C++11 工程级应用 09:告别无谓拷贝,解锁高性能移动语义
开发语言·数据结构·c++·vscode·软件工程·visual studio
2601_9657422217 分钟前
全媒体运营与短视频代运营,两者有什么区别?
大数据·数据结构·人工智能·算法·ai·媒体
wordbaby1 小时前
混合检索:两全其美的艺术
人工智能·算法
彧azz2 小时前
数据结构:关于图的学习
c语言·数据结构·笔记·学习·算法
热心网友俣先生2 小时前
A题-药材的烘干问题-题意逐句翻译
算法·数学建模
2601_960356382 小时前
2026秋招运营分析师能力模型:SQL、指标体系、AIGC与业务分析
算法
hetao17338372 小时前
校内场-提高组 ZYZSC-S-Round 4
c++·算法
彧azz2 小时前
二叉搜索树学习记录
c语言·数据结构·笔记·算法
手写码匠3 小时前
DeepSeek 函数调用实战:从零搭建一个会“动手“的 AI 助手
人工智能·深度学习·算法·aigc
果壳science4 小时前
《自然本源》如何实现狭义相对论的代数化
笔记·算法·几何学