【Codeforces】Codeforces Round 905 (Div. 3)

Problem - 1883C - Codeforces

这题当时想复杂了。

题目大意:

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

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

这题需要抓住一个点k属于[2,5],2,3,4,5中只有4是合数需要特殊判断,别的直接用k-a[i]%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;
}
相关推荐
AI进化营-智能译站40 分钟前
ROS2 C++开发系列16-智能指针管理传感器句柄|告别ROS2节点内存泄漏与野指针
java·c++·算法·ai
CS创新实验室1 小时前
从盘边到芯端——硬盘接口七十年变迁史
算法·磁盘调度
xvhao20132 小时前
单源、多源最短路
数据结构·c++·算法·深度优先·动态规划·图论·图搜索算法
MATLAB代码顾问2 小时前
多种群协同进化算法(MPCE)求解大规模作业车间调度问题——附MATLAB代码
开发语言·算法·matlab
FQNmxDG4S2 小时前
JVM内存模型详解:堆、栈、方法区与垃圾回收
java·jvm·算法
We་ct2 小时前
LeetCode 72. 编辑距离:动态规划经典题解
前端·算法·leetcode·typescript·动态规划
AI科技星2 小时前
精细结构常数α作为SI 7大基本量纲统一耦合常数的量子几何涌现理论
算法·机器学习·数学建模·数据挖掘·量子计算
txzrxz3 小时前
动态规划——背包问题
算法·动态规划
Yingye Zhu(HPXXZYY)3 小时前
洛谷 P15553 [CCPC 2025 哈尔滨站] 液压机
算法
谭欣辰4 小时前
LCS(最长公共子序列)详解
开发语言·c++·算法