Codeforces Round #301 (Div. 2) 解题报告(ABCD)

Facebook Hacker Cup 2015 Round 1 解题报告 Homework         求一个区间[A,B]中素因数个数为K的数有多少个。做法是dp。对每个数i,找到它的某一个素因数d,i的结果就由i/d推得。找的方法是修改筛法。 #include #include #include #include #include #include #include #include #include using namespace 阅读详情

A Combination Lock

        n位0~9密码锁两种状态之间,问最少拨多少次。注意可能越过'0'。直接上代码。。

#include <bits/stdc++.h>  
using namespace std; 

char num1[1010];
char num2[1010];

int main(){
	int n;
	cin>>n;
	cin>>num1>>num2;
	
	int ans=0;
	for(int i=0;i<n;i++){
		int tmp=abs(num1[i]-num2[i]);
		tmp=min(tmp,num1[i]+10-num2[i]);
		tmp=min(tmp,num2[i]+10-num1[i]);
		ans+=tmp;
	}
	cout<<ans<<endl;
	return 0;
} 

B School Marks

        就是一个人去考n门课,总分不能高于x,所有课得分的中位数不能低于y。现在已经考了k门,问能否达成要求。

        贪心。因为总分不能太高,如果中位数不够高直接用y来补,补完以后全部考1分。

#include <bits/stdc++.h>  
using namespace std; 

int a[10100];
int b[10100];

int main(){
	int n,k,p,x,y;
	cin>>n>>k>>p>>x>>y;
	
	int cnt=0;
	for(int i=1;i<=k;i++){
		cin>>a[i];
		if(a[i]>=y)cnt++;
	}
	
	int mid=(n+1)/2;
	int need=mid-cnt;
	for(int i=k+1;i<=k+need;i++){
		a[i]=y;
	}
	if(need<0)need=0;
	for(int i=k+need+1;i<=n;i++){
		a[i]=1;
	}
	int sum=0;
	for(int i=1;i<=n;i++){
		sum+=a[i];
	}
	bool ok=1;
	if(sum>x)ok=0;
	for(int i=1;i<=n;i++)b[i]=a[i];
	sort(b+1,b+n+1);
	if(b[mid]<y)ok=0;
	if(ok){
		for(int i=k+1;i<=n;i++){
			cout<<a[i]<<" ";
		}
	}else{
		cout<<"-1"<<endl;
	}
	
	return 0;
} 

C Ice Cave

        走冰迷宫。有两种冰,完好的和破损的,完好的走过会变成破损的,破损的走过会掉下去,需要在终点掉下去,问是否可实现。

        BFS。搜一条完好的冰路到终点。如果终点是完好的,需要再有一个相邻格子是完好的能够走过去再回到终点。注意起点和终点可能重合,需要特判。

#include <bits/stdc++.h>  
using namespace std; 

char mp[510][510];
bool vis[510][510];
int dirn[]={-1,1,0,0};
int dirm[]={0,0,-1,1};

struct pt{
	int x,y;
	pt(int x,int y):x(x),y(y){
	}
	pt(){
	}
};

int main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		scanf("%s",mp[i]+1);
	}
	int sn,sm;
	int tn,tm;
	cin>>sn>>sm;
	cin>>tn>>tm;
	
	queue<pt> que;
	que.push(pt(sn,sm));
	vis[sn][sm]=1;
	while(!que.empty()){
		pt cur = que.front();	que.pop();
		for(int i=0;i<4;i++){
			int newn=cur.x+dirn[i];
			int newm=cur.y+dirm[i];
			if(newn<1)continue;
			if(newn>n)continue;
			if(newm<1)continue;
			if(newm>m)continue;
			
			if(!vis[newn][newm]){
				if(mp[newn][newm]=='.' || (newn==tn&&newm==tm) ){
					vis[newn][newm]=1;
					que.push(pt(newn,newm));
				}
			}
		}
	}
	
	//特判重合 
	if(tn==sn&&tm==sm){
		int cnt=0;
		for(int i=0;i<4;i++){
			if(mp[tn+dirn[i]][tm+dirm[i]]=='.')cnt++;
		}
		if(cnt){
			cout<<"YES"<<endl;
			return 0;
		}else{
			cout<<"NO"<<endl;
			return 0;
		}
	}
	
	if(vis[tn][tm]){
		if(mp[tn][tm]=='X'){
			cout<<"YES"<<endl;
		}else{
			int cnt=0;
			for(int i=0;i<4;i++){
				if(mp[tn+dirn[i]][tm+dirm[i]]=='.')cnt++;
			}
			if(cnt>1|| ( abs(sn-tn)+abs(sm-tm)==1&&cnt==1 ) ){	//注意特别猥琐的情况 
				cout<<"YES"<<endl;
			}else{
				cout<<"NO"<<endl;
			}
		}
		
		
	}else{
		cout<<"NO"<<endl;
	}
	
	return 0;
} 

D Bad Luck Island

        一个岛上,有石头剪刀布三种人,他们会不断随机碰面,输的人就没了。问到最后石头剪刀布剩下的概率分别是多少。

        概率dp。dp(i,j,k)表示岛上还有i个石头,j个剪刀,k个布。dp(i,j,k)可以由dp(i+1,j,k),dp(i,j+1,k),dp(i,j,k+1)转移而来。例如dp(i+1,j,k)->dp(i,j,k),发生这种情况肯定是石头和布碰面,石头没了,根据它们的数量算一下概率。要注意一种情况,同种类型的人碰面是不会发生结果的,所以计算的时候要把那部分概率按比例摊给其他情况。具体见代码。

#include <bits/stdc++.h>  
using namespace std; 

double dp[110][110][110];

int main(){
	int a,b,c;
	
	cin>>a>>b>>c;
	
	dp[a][b][c]=1;
	
	for(int i=a;i>=0;i--){
		for(int j=b;j>=0;j--){
			for(int k=c;k>=0;k--){
				if(i==a&&j==b&&k==c)continue;
				double sum=i+j+k+1;
				if(sum<=1)continue;
				double tmp1=0,tmp2=0,tmp3=0;
				double t=0;
				tmp1 += dp[i+1][j][k]*k/sum*(i+1)/(sum-1);
				tmp1 += dp[i+1][j][k]*(i+1)/sum*k/(sum-1);
				//计算同类人碰面的概率并按比例分摊,下同。 
				t=(i+1)/sum*(i)/(sum-1)+(j-1)/sum*(j)/(sum-1)+(k-1)/sum*(k)/(sum-1);
				if(t<1.0)tmp1/=(1.0-t);
				
				tmp2 += dp[i][j+1][k]*i/sum*(j+1)/(sum-1);
				tmp2 += dp[i][j+1][k]*(j+1)/sum*i/(sum-1);
				t=(i-1)/sum*(i)/(sum-1)+(j+1)/sum*(j)/(sum-1)+(k-1)/sum*(k)/(sum-1);
				if(t<1.0)tmp2/=(1.0-t);
				
				tmp3 += dp[i][j][k+1]*j/sum*(k+1)/(sum-1);
				tmp3 += dp[i][j][k+1]*(k+1)/sum*j/(sum-1);
				t=(i-1)/sum*(i)/(sum-1)+(j-1)/sum*(j)/(sum-1)+(k+1)/sum*(k)/(sum-1);
				if(t<1.0)tmp3/=(1.0-t);
				
				dp[i][j][k]=tmp1+tmp2+tmp3;
			}
		}
	}
	
	
	double ansa=0;
	double ansb=0;
	double ansc=0;
	
	for(int i=1;i<=a;i++){
		ansa+=dp[i][0][0];
	}
	for(int i=1;i<=b;i++){
		ansb+=dp[0][i][0];
	}
	for(int i=1;i<=c;i++){
		ansc+=dp[0][0][i];
	}
	printf("%.10lf %.10lf %.10lf\n",ansa,ansb,ansc);
	return 0;
} 




Screenshot_2026-11-03-16-23-09-34.jpg 立即下载

相关推荐

研发流程后端开发工具,提示功能开发效率

后端开发工具

Codeforces Round #301 (Div. 2) A、C

A. Combination Lock time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Scrooge McDuck keeps his most treasured

在风雨中奔跑 1069

机器人具有扰动抑制功能的有限时间基于方位角的领航者-跟随者编队控制(Matlab代码实现)

内容概要:本文档标题为《Plecs全桥LLC谐振变换器仿真模型.txt》,但实际内容并未涉及该主题的具体技术细节或仿真建模过程。相反,文档实质是一份由科研服务团队发布的跨学科资源目录,集中展示了大量基于Matlab、Simulink、Python、PSCAD等平台实现的科研项目与算法开发案例,涵盖电力系统、无人机路径规划、微电网优化、状态估计、信号处理、车间调度、图像处理、通信技术、雷达追踪、智能优化算法等多个工程技术领域。每个条目以“【】”标注研究主题,并注明“Matlab代码实现”“Python代码实现”等形式,表明其为可提供技术支持与代码资源的服务项目。文档末尾频繁出现“完整资源下载:公众号——荔枝科研社”及百度网盘链接,明确体现出其作为科研辅助服务推广与引流工具的功能属性。; 适合人群:面向电气工程、自动化、控制科学与工程、计算机科学、智能制造、新能源、航空航天、通信工程及相关交叉学科的研究生、高校教师、科研人员及企业研发工程师。; 使用场景及目标:①为科研人员提供课题选题、技术路线设计与算法实现的参考范例;②辅助学生或研究人员完成课程设计、毕业论文、项目仿真与算法复现任务;③作为第三方技术服务团队的能力展示目录,便于潜在客户快速了解其在多领域提供的定制化仿真与算法开发服务范围。; 阅读建议:此文档并非传统意义上的学术论文或技术教程,而是一份高度碎片化、广告性质浓厚的资源索引清单。读者应忽略其误导性的文件名,将其视为一个综合性科研技术服务目录,重点关注自身研究方向相关的条目,并通过文末提供的公众号或网盘链接进一步获取具体代码与资料。同时,需注意甄别资源的技术质量、原创性与适用性,避免盲目依赖外部服务。

Codeforces VK Cup 2016 - Round 1 (Div. 2 Edition)

A. Bear and Reverse Radewoosh  按要求计算一下即可。#include <bits/stdc++.h>#define ll long longusing namespace std;int p[111]; int t[111];int main(){ int n,c; cin>>n>>c; for(int i=1;i<=n;i++){

A Cube Master 2万+

科技中介服务机构如何打造高效、可复制的技术交易服务流程?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

HMC5883L磁力计在STM32F4上的I2C驱动与数据校准实战

本文详细介绍了HMC5883L磁力计在STM32F4平台上的I2C驱动开发与数据校准实战。通过解析寄存器配置、数据读取处理和椭圆拟合校准算法,帮助开发者实现精准的地磁测量,特别适用于无人机导航和机器人系统中的航向确定与陀螺仪漂移修正。

2y3u4i5o6p的博客 1037

河南省第七届ACM大学生程序设计竞赛 解题报告

这两天把去年省赛的题挂到了OJ上,顺便练手。 A.物资调度 DP,类似01背包。dp(i,j)表示情况数,第一维表示考察到第i种物资,第二维表示总数量为j。显然,如果按照题目给的数据范围,答案会超出64位整型的范围,但是题目并没有要求取模,只能说数据太弱。 B.海岛争霸 Floyd算法,稍微修改一下状态转移方程就可以了。Floyd是求和,这题是取最大。 C.机器人

A Cube Master 3360

手把手教你用IN-Sight智能相机实现双向TCP/IP通讯(附网络调试助手推荐)

本文详细解析了IN-Sight智能相机实现双向TCP/IP通讯的完整流程。通过将相机同时配置为TCP服务器和客户端,构建了与上位机(如PLC、MES)稳定可靠的数据交换通道。文章深入剖析了发送(TCPDevice)与接收(ReadDevice)通道的独立配置、关键参数设置(如结束符CR+LF)、高效调试工具选择以及实战避坑指南,帮助工程师快速掌握这一构建柔性产线数据节点的核心技术。

qsc9012345的博客 671

Google Code Jam 2015 Round 1A 解题报告

太弱了,比赛时只出了A的大数据和BC小数据,排到1700+。赛后才把B的小数据过了。 A. Mushroom Monster         就是贪心模拟。第一种吃法,只有当前时刻比10秒前少才去吃减少的量,否则不吃。第二种吃法,计算每十秒的减少量,以减少量最大的作为平均速率去吃。 #include using namespace std; int m[10010];

A Cube Master 2409

从‘哒哒’声到静音顺滑:一文搞懂42步进电机细分控制的原理与实战(以TMC5160为例)

本文详细解析了42步进电机细分控制技术,以TMC5160为例,探讨如何通过正弦波电流调制和自适应波形整形实现静音运行。文章提供了实战配置指南,包括硬件连接、寄存器配置和调试技巧,帮助用户有效消除电机噪声,提升3D打印机、CNC机床等设备的运行效率。

weixin_42657024的博客 313

gephi生成网络关系图_路网拓扑重建专题 (3) 网络图生成

城市道路网建模在获得基础路网之后,需要考虑道路交通网络的描述与表达问题。网络是将现实世界中的事物及其关系进行适当的抽象,构造成由节点和边按照一定规则组成的形式。一个实体网络可以由有限个“节点”集合与“边”集合构成的图表示,即网络表示为。对于一个由个节点组成的无权复杂网络,该图有邻接矩阵,这里。根据研究对象不同,建模方法主要包括原始法[1]和对偶法[2]两种,见图1,字母a-j为交叉口编号...

weixin_39761195的博客 3504

2015 百度之星初赛1 解题报告

1001 超级赛亚ACMer         贪心。首先击败战斗力不大于m的最强者,每次去找可以增强战斗力,然后能击败的最强者,把自己战斗力增加到和他一样去打。如果能打败最强的对手,就可以了。 1002 找连续数         离散化,离线按k从1~1000递增的顺序,维护以每个位置为起点长度为k的最小值,最大值,以及是否有相同数。如果MAX-MIN=k-1且没有相同数,长度为k的

A Cube Master 1794

保姆级教程:用CH34xSerCfg工具修改USB转串口芯片的VID/PID,避免驱动冲突

本文详细介绍了如何使用CH34xSerCfg工具修改USB转串口芯片的VID/PID,解决驱动冲突问题。通过实战案例和配置技巧,帮助开发者高效管理嵌入式设备,避免常见的USB设备识别问题,提升开发效率。

weixin_30924239的博客 224

2015 ICPC 长春网赛 解题报告

只A了几道水题,还好晋级了。 07 The Water Problem         果然是水题,随便模拟一下就好了。为了题解完整性贴出来。 #include #include #include #include #include #include using namespace std; int a[1010]; int main(){

A Cube Master 1463

告别密码本!用Windows NPS给华为/华三交换机做Radius认证,SSH登录更安全

本文详细介绍了如何利用Windows NPS实现华为/华三交换机的Radius认证,提升SSH登录安全性。通过集中化管理、精细化控制和完整审计追踪,企业可告别传统密码本,大幅提升网络设备管理效率。文章包含NPS服务部署指南、交换机配置详解及调试技巧,助力企业构建安全高效的统一认证体系。

weixin_42549723的博客 419

【Neo4j × Python】基于知识图谱的电影问答系统(含问题记录与解决)附:源代码(含Bug解决)

此前,曾介绍过Neo4j的一些基础知识,本篇将在PyCharm中与Neo4j建立关联,从0到1实现一个基于知识图谱的电影问答系统,实现过程中,没有一帆风顺,而是遇到了一些问题,因此也包含问题的记录与解决。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 3167

福州大学第十二届程序设计竞赛 解题报告

由于这个OJ比较蛋疼,比赛时提交的代码看不到,所以就不附代码了,只说思路。 A 非提的救赎         待补。 B 完美的数字         求一个区间内,所有数的“完美度”的和,完美度定义为数i能分解为多少组i=A*A*B(A         预处理算出每个数的平方、立方。写一个函数fun(x)计算区间1~x的结果,题目的答案就是fun(b)-fun(a-1)。在

A Cube Master 1430

【Zephyr存储专题】09_LittleFs文件系统操作

本文档旨在为开发者介绍Zephyr下Littlef's文件系统相关配置使用指南

zero的博客 3246

Google Code jam Qualification Round 2015 解题报告

Problem A. Standing Ovation         题目说的是有许多观众,每个观众有一定的羞涩值,只有现场站起来鼓掌的人数达到该值才会站起来鼓掌,问最少添加多少羞涩值任意的人,才能使所有人都站起来鼓掌。         贪心模拟一下就好,添加的人默认让他们羞涩值为0,扫一遍,让加到刚好够就行。 #include #include #include #includ

A Cube Master 1343

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Codeforces Round #291 (Div. 2) 解题报告 (A B C D)

A Chewbaсca and Number         贪心,每一位取t和9-t中较小的。注意首位不能为0。 #include #include #include #include #include #include #include #include #include #include using namespace

A Cube Master 1178

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

2012 ACM-ICPC 杭州站解题报告(4道签到题)

hdu 4461 The Power of Xiangqi         题意:

A Cube Master 1153

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Codeforces Round #273 (Div. 2) 解题报告 (A B C D)

A. Initial Bet

A Cube Master 1047

Codeforces Bubble Cup 8 - Finals [Online Mirror] 解题报告

D Tablecity         从一头往另一头扫一遍,再逆着回来就好了。因为贼每走一步,横坐标的奇偶性都会改变。 #include #include #include #include using namespace std; int i; int main(){ printf("2000\n"); for (i=1;i<=1000;i++) printf("%d 1

A Cube Master 996

ACdream区域赛指导赛之手速赛系列(5) 解题报告 A C D

problem A

A Cube Master 975

Codeforces Round #281 (Div. 2) 解题报告(A B C D)

这场比赛真是大起大落。。比的时候一度排在rank1,以为从此达到人生巅峰了,结果最后B,C都FST了,都是因为很2的错误,B为了偷懒,居然把数加到string里比较字典序。C漏一个"=",而且有语句写错了位置。         CF题的难度,好像有变水的趋势。。以前前3题没算法,现在前4题都没有,而且还没编程复杂度。。 A. Vasya and Football

A Cube Master 912
上一篇: Codeforces Round #300 解题报告(ABCDEF)
下一篇: Codeforces Round #301 (Div. 2) E
squee_spoon
博客等级 码龄14年 61粉丝 455原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值