Codeforces Round #382 (div2)
A:题目:http://codeforces.com/contest/735/problem/A
题意:出发点G,终点T,每次只能走k步,#不能走,问能否到达终点
思路:暴力
#include <stdio.h>
#include <string.h>
char str[];
void YES(){
printf("YES\n");
}
void NO(){
printf("NO\n");
}
void solve(int n,int k){
int st,ed;
for(int i=;i<=n;i++){scanf(" %c",&str[i]);if(str[i]=='G') st=i;else if(str[i]=='T') ed=i;}
if(st<ed){
while(st<=ed){
st+=k;
if(st>n) {
NO();
return ;
}
if(st==ed){
YES();
return ;
}
if(str[st]=='#'){
NO();
return ;
}
}
NO();
}
else if(st>ed){
while(st>=ed){
st-=k;
if(st<){
NO();
return ;
}
if(st==ed){
YES();
return ;
}
if(str[st]=='#'){
NO();
return ;
}
}
NO();
} }
int main(){
int n,k;
while(scanf("%d %d",&n,&k)!=EOF){
solve(n,k);
}
}
B:题目:http://codeforces.com/contest/735/problem/B
题意:有n个值,分成两部分分别有n1,n2个,求两部分的平均值之和的最大值
思路:sum1/n1+sum2/n2 要尽量大,肯定排序从大往小选
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn=1e5+;
int a[maxn];
bool cmp(int a,int b){
return a>b;
}
int main(){
int n,n1,n2;
while(scanf("%d %d %d",&n,&n1,&n2)!=EOF){
for(int i=;i<=n;i++) scanf("%d",&a[i]);
sort(a+,a++n,cmp);
int x=min(n1,n2);
int y=max(n1,n2);
long long sum1=,sum2=;
for(int i=;i<=x;i++) sum1+=a[i];
for(int i=x+;i<=x+y;i++) sum2+=a[i];
double ans=;
ans=sum1/(x*1.0)+sum2/(y*1.0);
printf("%.7f\n",ans);
}
return ;
}
C:题目:http://codeforces.com/contest/735/problem/C
题意:两个人能比赛的条件为两个人之前打过比赛场数的差值不超过1,问胜者最多能打多少场比赛
思路:递推,假设打n场所需要的最少人数是a[n],那么要打n+1场比赛,那么在打了n场的基础上,最少需要一个打了n-1场比赛的人才能打,所以要打n+1场比赛所需要的最少人数是a[n+1]=a[n]+a[n-1],即a[n+2]=a[n+1]+a[n],a[1]=1,a[2]=3;
#include <cstdio>
#include <cmath>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn=;
long long Fi[maxn];
void solve() {
Fi[]=,Fi[]=;
for(int i=;i<=;i++) {
Fi[i]=Fi[i-]+Fi[i-];
if(Fi[i]>=(long long)1e18) {
break;
}
}
}
int main(){
long long n;
solve();
while(scanf("%I64d",&n)!=EOF) {
int pos=lower_bound(Fi+,Fi++,n)-Fi;
if(Fi[pos]>n) pos-=;
printf("%d\n",pos);
}
return ;
}
D:题目:http://codeforces.com/contest/735/problem/D
题意:一个数n的最小花费为n的最大约数(除了自己本身) ,现在n可以被分成k个数,n=n1+n2+...+nk,(nk>=2),n现在所需要的费用是k个数的费用总和,求n的最小花费
思路:很明显质数的最小费用是1,也就是看一个数能由多少个质数组成就是多少,一开始用的暴力过的,枚举前5000个数,对每个数找每次找最近的质数减掉然后再对n进行dp,dp[n]=min(dp[n-j]+dp[j],dp[n]),后来想了想好像就是哥德巴赫猜想。。
即任一大于2的偶数都可写成两个素数之和,那么当n是素数是答案是1,n是偶数或者n-2是质数,那么答案是2,其他的答案就是3(因为可以奇数可以拆为一个奇数加一个偶数,素数肯定是奇数)
#include <stdio.h>
#include <iostream>
#include <map>
using namespace std;
map<int,int> m;
bool judge(int n){
for(int i=;i*i<=n;i++){
if(n%i==) return false;
}
return true;
}
const int maxn=;
int dp[maxn];
int Cal(int num){
int cnt=;
while(num){
for(int j=num;;j--){
if(judge(j)){
num-=j;
cnt++;
break;
}
}
}
return cnt;
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
m[]=;
m[]=;
for(int i=;i<=;i++){
m[i]=Cal(i);
}
int cnt=;
for(int i=n;i>=max(n-,);i--){
m[i]=Cal(i); }
for(int i=n;i>=max(n-,);i--)
m[n]=min(m[n],m[n-i]+m[i]);
printf("%d\n",m[n]);
}
}
版本:
#include <cstdio>
bool judge(int n){
for(int i=;i*i<=n;i++)if(n%i==) return false;
return true;
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
if(judge(n)){
printf("1\n");
}
else if(judge(n-)||n%==){
printf("2\n");
}
else printf("3\n");
}
return ;
}
E,F留坑
Codeforces Round #382 (div2)的更多相关文章
- Codeforces Round #539 div2
Codeforces Round #539 div2 abstract I 离散化三连 sort(pos.begin(), pos.end()); pos.erase(unique(pos.begin ...
- 【前行】◇第3站◇ Codeforces Round #512 Div2
[第3站]Codeforces Round #512 Div2 第三题莫名卡半天……一堆细节没处理,改一个发现还有一个……然后就炸了,罚了一啪啦时间 Rating又掉了……但是没什么,比上一次好多了: ...
- Codeforces Round#320 Div2 解题报告
Codeforces Round#320 Div2 先做个标题党,骗骗访问量,结束后再来写咯. codeforces 579A Raising Bacteria codeforces 579B Fin ...
- Codeforces Round #564(div2)
Codeforces Round #564(div2) 本来以为是送分场,结果成了送命场. 菜是原罪 A SB题,上来读不懂题就交WA了一发,代码就不粘了 B 简单构造 很明显,\(n*n\)的矩阵可 ...
- Codeforces Round #361 div2
ProblemA(Codeforces Round 689A): 题意: 给一个手势, 问这个手势是否是唯一. 思路: 暴力, 模拟将这个手势上下左右移动一次看是否还在键盘上即可. 代码: #incl ...
- Codeforces Round #626 Div2 D,E
比赛链接: Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics) D.Present 题意: 给定大 ...
- CodeForces Round 192 Div2
This is the first time I took part in Codeforces Competition.The only felt is that my IQ was contemp ...
- Codeforces Round #382 Div. 2【数论】
C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...
- Codeforces Round #382 (Div. 2) 解题报告
CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了 ...
随机推荐
- Dynamics 365的系统作业实体记录增长太快怎么回事?
摘要: 本人微信公众号:微软动态CRM专家罗勇 ,回复294或者20190111可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me ...
- Access denied for user 'root'@'localhost' (using password:YES) Mysql5.7
解决方案: (1) 打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件.(my.ini在C:\ProgramData\MySQL\MyS ...
- 安装MySQL8.0 遇到的3个小错误
过去公司都是用的5.7 系列的MySQL,随着8.0的发版,也想试着升级一下.遇到了两个小错误,记录在此. 路径设置: 安装包路径:/data/mysql80/ 数据路径: /data/mysql/ ...
- python 完整项目开发流程
1. 安装 python 2. 安装virtualenvwrapper 3. 虚拟环境相关操作 4. 进入虚拟环境, 安装django 5. 安装编辑器 6. 安装mys ...
- 在java web项目中实现随项目启动的额外操作
前言 在web项目中经常会遇到在项目启动初始,会要求做一些逻辑的实现,比如实现一个消息推送服务,实现不同类型数据同步的回调操作初始化,或则通知其他客户服务器本项目即将启动,等等.对于这种要求,目前个人 ...
- 给Integer对象加锁的错误方式
package com.thread.test; public class BadLockOnInteger implements Runnable { public static Integer i ...
- sqlalchemy外键的一些东西
sqlalchemy中让MySQL支持中文字符 engine = create_engine("mysql+pymysql://root:mysql8@localhost/mysqltest ...
- MySQL常用日期时间函数
日期和时间函数: MySQL服务器中的三种时区设置: ①系统时区---保存在系统变量system_time_zone ②服务器时区---保存在全局系统变量global.time_zone ③每个客户端 ...
- vmware centos7 minimal 配置共享文件夹
使用的是VMware安装CentOS7 minimal版,系统镜像是CentOS-7-x86_64-DVD-1708.iso. 宿主机系统为win10,CentOS7 minimal过程省略,可参考h ...
- pytorch Debug —交互式调试工具Pdb (ipdb是增强版的pdb)-1-在pytorch中使用
参考深度学习框架pytorch:入门和实践一书第六章 以深度学习框架PyTorch一书的学习-第六章-实战指南为前提 在pytorch中Debug pytorch作为一个动态图框架,与ipdb结合能为 ...