Codeforces Round #494 (Div. 3) (ABCDE) 题解

Codeforces题解整合【按照场次】 本贴只给出传送门,用于整合。 本帖只会给出整场全部题的题解。 没有做出来全部题的场次的题解不进行记录。 也算用于给自己一种补题的督促动力吧。 Codeforces Round #383 (Div. 2)【A.B.C.D.E】: http://blog.csdn.net/mengxiang000000/article/details/53503168 http://blo 阅读详情

题目链接:http://codeforces.com/contest/1003

A题题意:给定N个值,每个集合只能放不相同的数,问把所有值放进去最少需要多少个集合。

A题题解:直接暴力统计最多出现的数的次数即可。

AC代码:

#include <bits/stdc++.h>
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
const int maxn = 1e5+7;
int a[105];
int n;
int main(int argc, char const *argv[])
{
	cin>>n;
	int ans = 0;
	_for(i,1,n)
	{
		int x;
		cin>>x;
		a[x]++;
		ans=max(ans,a[x]);
	}
	cout<<ans<<endl;
	return 0;
}

B题题意:给定a,b,x三个数,构造一个长度为a+b的数列,其中0的个数等于a,1的个数等于b,a[i]!=a[i+1]的个数等于x。

B题题解:对x分奇偶分情况讨论,然后在两边将多余的01输出即可。

AC代码:

/*
* @Author: 王文宇
* @Date:   2018-07-03 22:40:50
* @Last Modified by:   王文宇
* @Last Modified time: 2018-07-03 23:04:11
*/
#include <bits/stdc++.h>
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
const int maxn = 1007;
char s[maxn];
int a,b,x;
int main(int argc, char const *argv[])
{
	cin>>a>>b>>x;
	int now = 1;
	int l = x;
	if(x&1)
	{
		if(a>b)
		{
			while(x>1)
			{
				a--;
				b--;
				x-=2;
			}
			while(a--)cout<<0;
			while(l>1)
			{
				cout<<"10";
				l-=2;
			}
			while(b--)cout<<1;
			cout<<endl;
		}
		else
		{
			while(x>1)
			{
				a--;
				b--;
				x-=2;
			}
			while(b--)cout<<1;
			while(l>1)
			{
				cout<<"01";
				l-=2;
			}
			while(a--)cout<<0;
			cout<<endl;			
		}
	}
	else
	{
		if(a>b)
		{
			a-=x/2;
			b-=x/2;
			while(a>1)
			{
				cout<<"0";
				a--;
			}
			while(x>0)
			{
				cout<<"01";
				x-=2;
			}
			while(b--)cout<<"1";
			cout<<0<<endl;
		}
		else
		{
			b-=x/2;
			a-=x/2;
			while(b>1)
			{
				cout<<"1";
				b--;
			}
			while(x>0)
			{
				cout<<"10";
				x-=2;
			}
			while(a--)cout<<"0";		
			cout<<1<<endl;	
		}
	}
	return 0;
}

C题题意:给定N个数值和K,求一个长度不小于K的子序列,使其平均值最大。

C题题解:因为n<=5000,所以n^2暴力即可。

AC代码:

/*
* @Author: 王文宇
* @Date:   2018-07-03 23:11:04
* @Last Modified by:   王文宇
* @Last Modified time: 2018-07-03 23:19:36
*/
#include <bits/stdc++.h>
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
const int maxn = 5005;
int n,k;
double ans;
int a[maxn];
int sum[maxn];
int main(int argc, char const *argv[])
{
	cin>>n>>k;
	_for(i,1,n)
	{
		cin>>a[i];
		sum[i]=sum[i-1]+a[i];
	}
	_for(i,0,n-k)
	{
		_for(j,i+k,n)
		{
			int h = sum[j]-sum[i];
			double now = (double)h/(double)(j-i);
			ans = max(now,ans);
		}
	}
	printf("%.15lf\n",ans);
	return 0;
}

D题题意:给定一个只包含2的倍数的数组,然后给定Q个询问,对于每次询问的整数找到取最少的数组中的数的和等于被询问数,无法构成输出-1

D题题解:将给定的数拆成2进制统计每个进制然后对于每个询问暴力即可。

AC代码:

/*
* @Author: 王文宇
* @Date:   2018-07-03 23:47:28
* @Last Modified by:   王文宇
* @Last Modified time: 2018-07-04 00:49:17
*/
#include <bits/stdc++.h>
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
const int maxn = 2e5+7;
int n,q;
int a[maxn],num[maxn];
int main(int argc, char const *argv[])
{
	cin>>n>>q;
	_for(i,1,n)
	{
		cin>>a[i];
		int k = -1;
		while(a[i])
		{
			k++;
			a[i]/=2;
		}
		num[k]++;
	}
	_for(i,1,q)
	{
		int x;
		cin>>x;
		int ss = 0;
		int now = 0;
		int ok = 0;
		long long k = 1;	
		long long next = (long long)x;
		while(k<=next)
		{
			k*=2;
			now++;
		}
		while(next>0)
		{
			k/=2;
			//cout<<now<<endl;
			now--;
			if(k>next)continue;
			if(num[now]*k>=next)
			{
				int h = next/k;
				next-=k*h;
				ss+=h;
			}
			else
			{
				ss+=num[now];
				next-=num[now]*k;
			}
			if(now==-1)
			{
				ok = 1;
				break;
			}	
		}
		if(ok||next<0)cout<<"-1"<<endl;
		else cout<<ss<<endl;
	}
	return 0;
}

E题题意:给定n,d,k,构造一棵无向树,结点个数为n,直径为d,每个结点的深度不大于k。

E题题解:首先特判不存在的情况,然后先构造出直径,然后在直径上尽可能的加边即可。最后判断加的边是不是等于n-1即可。

AC代码:

/*
* @Author: 王文宇
* @Date:   2018-07-03 23:34:42
* @Last Modified by:   王文宇
* @Last Modified time: 2018-07-04 04:02:26
*/
#include <bits/stdc++.h>
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
const int maxn = 4e5+7;
int n,d,k,now;
vector<pair<int,int> > Q;
vector<int> E[maxn];
void dfs(int x,int y,int z)
{
	if(z==y)return;
	for(int i=0;i<k-1-(y==0)&&now<n;i++)
	{
		now++;
		int u = now;
		Q.push_back(make_pair(x,u));
		dfs(u,y+1,z);
	}
}
int main(int argc, char const *argv[])
{
	cin>>n>>d>>k;
	if(n<(d+1))
	{
		cout<<"NO"<<endl;
		return 0;
	}
	if(k==1)
	{	
		if(d==1&&n==2)cout<<"YES\n1 2"<<endl;
		else cout<<"NO"<<endl;
		return 0;
	}
	now = d+1;
	_for(i,1,d)
	{
		E[i].push_back(i+1);
		Q.push_back(make_pair(i,i+1));
	}
	_for(i,1,d+1)
	{
		dfs(i,0,min(i-1,d+1-i));
	}
	if(now<n)
	{
		cout<<"NO"<<endl;
		return 0;
	}
	cout<<"YES"<<endl;
	_for(i,0,n-2)cout<<Q[i].first<<" "<<Q[i].second<<endl;
	return 0;
}


从零构建MAVLink通信:PX4飞控与QGC的协议握手全解析 本文详细解析了PX4飞控与QGC地面站通过MAVLink协议进行通信的全过程,重点介绍了航点传输协议的状态机设计、INT类型消息的优化优势以及异常处理与调试技巧。通过实战案例和性能优化建议,帮助开发者高效构建无人机通信系统,提升数据传输效率与稳定性。 阅读详情

相关推荐

海康工业相机使用:常见问题及解决方法

工业相机在使用过程中,经常会因为操作不当、使用环境不当等原因出现一些问题,本篇教程,主要针对海康工业相机常见问题及其定位方法做以简单介绍,希望可以帮助大家。 注:该教程对其他品牌工业相机“常见问题”排查,也具备一定的指导意义。 当出现无法通过客户端发现设备或者无法预览图像等问题,先确认当前的运行环境是否满足以下要求: 确认装有相机驱动软件的电脑网卡为千兆网卡(Gige接口相机); 确认网卡是否已开启巨型帧; 确认电脑与网口相机之间的网络链路为千兆; 确认装有相机驱动软件的USB接口为3...

Cche的博客 3万+

Codeforces Round 1003 (Div. 4)题解ABC1C2DEFG

现在有一个有N个顶点的树与一个长度为N的数组A,顶点i上写有值A_i,其中A_i是一个范围在1~N的整数。所以此题无需XFS,对于 i,遍历i的所有邻居j,将A_j的出现次数+1,如果某个数x(下标为k)在i的邻居出现次数>=2,则可以构造路径 u -> v -> w,两边权值相同的情况,即u -> v在输入的时候即可读取。题意:给定N个数组,每个长度是M,可以任意排列这些数组,并将他们串联成一个长数组,定义一个数组的价值为其所有前缀和的总和,即对于长度为K的B数组,他的价值为。所以这是一个比较绕的贪心。

nobkin的博客 1182

MLC-LLM框架在安卓设备上的模型编译与部署全流程解析

本文详细解析了如何利用MLC-LLM框架在安卓设备上编译与部署大语言模型。从环境搭建、模型获取与量化编译,到最终的安卓应用打包与调试,提供了完整的实战流程。重点介绍了如何通过MLC-LLM将大型模型优化为适合移动端运行的格式,实现本地、低延迟、隐私安全的AI应用部署。

weixin_29251337的博客 475

【CodeForces】【构造】1003E-Tree Constructing

CodeForces 1003E Tree Constructing 题目 ◇题目传送门◆ 大意 给定NNN,DDD,KKK,要求构造一棵拥有NNN个节点,直径为DDD,每个节点度数不超过KKK的树。若存在这样的树,则输出“YES”和任意一种边的方案,否则输出“NO”。 思路 我们先来讨论一下特殊情况: N≤DN≤DN \leq D时:我们连一条长度为DDD的链都构...

IDDFS 284

告别Selenium!纯Python+Requests搞定微信视频号登录Cookie(附完整代码与避坑指南)

本文详细介绍了如何利用纯Python和Requests库实现微信视频号的自动化登录,替代传统的Selenium方案。通过解析HTTP请求交互流程,提供完整的代码实现和避坑指南,显著提升爬虫效率和隐蔽性,适用于轻量化爬虫开发。

weixin_30642561的博客 310

使用Kettle进行数据同步(增量)

文章目录kettle介绍kettle安装kettle使用使用kettle同步关系型数据库数据(MySQL示例)1. 创建一个转换2. 选择表输入3. 格式转换4. 执行脚本5. 创建job使用kettle同步NoSql数据(MongoDB示例)创建转换时的注意事项MongoDBInput怎么创建job的创建如何在Linux上面运行已经创建好的job?1、把创建好的job传输到Linux机器上面2、编辑kjb文件3、执行任务 kettle介绍 Kettle 是一款国外开源的 ETL 工具,纯 Java 编写

JenKin的博客 7349

Codeforces Round 1003 (Div. 4)

仅个人记录

2401_88210258的博客 872

CKS-CN考试之路----11

显然是alpine-b的镜像有libcrypto3-3.1.4-r5。新版本发布老版本会被回收,此时pod只剩下2个container。我们依次测试是哪个镜像里包含libcrypto3。可以看到alpine的pod有3个副本.

Q先生 651

codeforces 1003C Intense Heat

题目链接:http://codeforces.com/problemset/problem/1003/C 题目思路:该题用到了前缀和,题意是给你n个数要求找连续小于等于k的最大平均值。暴力把每个区间的平均值都求出来进行比较。 #include&lt;cstdio&gt; #include&lt;cmath&gt; #include&lt;algorithm&gt; #include&l...

okimaru的博客 283

32、运算放大器的工作原理与应用

本文详细介绍了运算放大器的工作原理与多种应用场景,涵盖开环与闭环放大器的基本概念、理想运算放大器的特性及其‘黄金规则’。文章深入解析了反相放大器、同相放大器、单位增益跟随器与反相器的配置和增益计算,并探讨了电压比较器及窗口比较器的工作机制。同时提供了运算放大器在实际应用中的选型流程、使用注意事项以及常见故障排查方法,帮助读者全面掌握运算放大器的设计与应用要点。

u5v6w7的博客 160

Google Earth Engine :处理Sentinel-1 GRD SAR数据以估算田间尺度土壤湿度的工作流程(计算双极化雷达植被指数(DpRVIc)和VV极化后向散射强度(VVdB))

本文介绍了利用Google Earth Engine (GEE)处理Sentinel-1 SAR数据估算田间土壤湿度的方法。工作流程包括:定义研究区域并筛选指定日期、轨道参数的Sentinel-1图像;预处理计算双极化雷达植被指数(DpRVIc)和VV极化后向散射强度(VVdB),通过均值滤波降噪并去除无效像素;结合动态世界数据集掩膜水体/城市区域;最终导出时序GeoTIFF文件。DpRVIc基于双极化后向散射系数比,对植被结构敏感,而VVdB反映地表反射特性,二者结合可有效评估土壤湿度。该方法适用于农业监

此星光明博客 383

PAT-B] 1003. 我要通过! [字符串处理]

PAT-B 1003. 我要通过!(20) 字符串处理 适当分析

Nezar 758

AI Agent开发大全第一课-AI是什么以及如何使用AI

近年来,人工智能的迅猛发展引发了广泛的关注,尤其是“大模型”这一概念越来越深入人心。大模型,顾名思义,通常指的是那些拥有大量参数、能够处理复杂任务的机器学习模型。与传统小模型相比,大模型在数据处理、信息理解和生成等方面表现更加出色。为了理解为什么现在的AI被称为大模型,我们需要深入探讨几个关键因素。立角色是指在提示词中清晰地界定交互双方的身份。明确用户希望模型扮演的角色,可以帮助模型更准确地理解上下文和用户需求。

打造全国最全的AI Agent开发知识领域的博客 1406

Codeforces Round #494 (Div. 3) ABCDE

A 签到题 求出现次数最多的数的次数。 1 #include <bits/stdc++.h> 2 #define ll long long 3 using namespace std; 4 const int N = 110; 5 map<int,int> mp; 6 int main() { 7 int n, x, MAX ...

weixin_30596023的博客 161

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Codeforces Round #494 (Div. 3)(A-F)题解

Codeforces Round #494 (Div. 3)(A-E)题解 传送门 A. Polycarp’s Pockets 思路:输出众数个数即可。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=105+5,M=1e6+5,inf=0x3f3f3f3f,mod=1e9+7; #define mst(a) memset(a,0,sizeof a) #define lx x<&l

Harris-H的博客 591

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Codeforces Round #494 (Div. 3) C. Intense Heat

C. Intense Heattime limit per test4 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThe heat during the last few days has been really intense. Scientists from all over...

c8241998的博客 421

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Codeforces Round #383 Div 1题解

第一次打Div 1,感觉还是挺难的。。把基础题打完就日常划水了。。。。 A. Arpa's loud Owf and Mehrdad's evil plan 题目大意: 有n个人,每个人有一个后继,求在进行多少次传递后第i 个人跟第j个人对话的同时,第j个人也能跟第i个人对话(允许自己与自己对话)。$1\leq n \leq 100$ 这 题意花了我好多时间啊。。说白了就是要找环咯,把每条环...

weixin_30715523的博客 190

Codeforces Round #494 (Div. 3)

传送门:http://codeforces.com/contest/998 A. Polycarp’s Pockets 直接找出数字出现次数最多的次数 #include&lt;bits/stdc++.h&gt; using namespace std; int a[106]; int main() { ios::sync_with_stdio(false); int n,...

blue_kid的博客 266

Codeforces1003E-构造一个树

(有任何问题欢迎留言或私聊 &amp;amp;&amp;amp; 欢迎交流讨论哦 题意:  原题目描述在最下面。  给你n, k, d。问是否能构造出一颗树,其有n个节点,直径为k,每个点的度数不超过d。若能,则输出YES 并输出任意符合条件的解,反之输出NO。 思路:  我的写法是先特判能否构造出一条直径来,若不能则直接输出NO。构造出了直径之后,就枚举这条直径上的点,进行dfs。 控制...

打过ICPC/CCPC,学习ACM算法,Linux内核,Openharmony,加油努力开心珍惜 532

Codeforces Round #157 (Div. 2)

A. Little Elephant and Chess 题意是说能否将给定的棋盘转换成相邻颜色不同的棋盘,不能想复杂了,想明白了就很简单,格局就两种情况,WBWBWBWB和BWBWBWBW,只要能转换成这两种任一种就能做调整使得满足要求。回顾 用字符数组存储字符串,用cstring中的字符串处理函数,同时别忘了,假如定义了一个字符数组c[9],若有操作cin>>c,其实就能实现输入字符串的效果

开飞机的小毛驴儿 729

Codeforces Round #496 (Div. 3) F. Berland and the Shortest Paths[思维+图论]

F. Berland and the Shortest Paths题意:一张图有n个顶点,m条边,现在要求选择n-1条边,输出&lt;=k个方案.每个方案满足:顶点1到任何1个顶点的距离 总和 最小.思路:每个顶点(除了1),有选择1条边的机会.先bfs求出1到所有顶点的最短距离,假如 dis[u]==dis[v]+1 其中v为相邻顶点,则选这条边,能够最小化答案.那么对于u来说,选择(u,v1)...

Haipai1998的博客 389

Codeforces Round #260 (Div. 2) (DP没学好。。)

最近变懒了哎= =这是

Where amazing happens 447

洛谷 P1094 纪念品分组

P1094 纪念品分组题目链接:https://www.luogu.org/problemnew/show/P1094题目描述元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组...

sortmin的博客 494

51NOD-1091-线段的重叠

1091 线段的重叠 题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1091 题目 X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]。 给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长的。输出这个最长的

sortmin的博客 468

洛谷 P1803 凌乱的yyy

 P1803 凌乱的yyy题目链接:https://www.luogu.org/problemnew/show/P1803题目描述现在各大oj上有n个比赛,每个比赛的开始、结束的时间点是知道的。yyy认为,参加越多的比赛,noip就能考的越好(假的)所以,他想知道他最多能参加几个比赛。由于yyy是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加2个及以上的比赛。输入输出格式输入格式:第一行是...

sortmin的博客 458

洛谷 P1223 排队接水

P1223 排队接水题目链接:https://www.luogu.org/problemnew/show/P1223题目描述有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。输入输出格式输入格式:输入文件共两行,第一行为n;第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。输出格式:...

sortmin的博客 423
上一篇: HDU 4287 Intelligent IME hash
下一篇: Codeforces Round #495 (Div. 2) (ABCE) 题解
sortmin
博客等级 码龄9年 45粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值