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)的更多相关文章

  1. Codeforces Round #539 div2

    Codeforces Round #539 div2 abstract I 离散化三连 sort(pos.begin(), pos.end()); pos.erase(unique(pos.begin ...

  2. 【前行】◇第3站◇ Codeforces Round #512 Div2

    [第3站]Codeforces Round #512 Div2 第三题莫名卡半天……一堆细节没处理,改一个发现还有一个……然后就炸了,罚了一啪啦时间 Rating又掉了……但是没什么,比上一次好多了: ...

  3. Codeforces Round#320 Div2 解题报告

    Codeforces Round#320 Div2 先做个标题党,骗骗访问量,结束后再来写咯. codeforces 579A Raising Bacteria codeforces 579B Fin ...

  4. Codeforces Round #564(div2)

    Codeforces Round #564(div2) 本来以为是送分场,结果成了送命场. 菜是原罪 A SB题,上来读不懂题就交WA了一发,代码就不粘了 B 简单构造 很明显,\(n*n\)的矩阵可 ...

  5. Codeforces Round #361 div2

    ProblemA(Codeforces Round 689A): 题意: 给一个手势, 问这个手势是否是唯一. 思路: 暴力, 模拟将这个手势上下左右移动一次看是否还在键盘上即可. 代码: #incl ...

  6. Codeforces Round #626 Div2 D,E

    比赛链接: Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics) D.Present 题意: 给定大 ...

  7. CodeForces Round 192 Div2

    This is the first time I took part in Codeforces Competition.The only felt is that my IQ was contemp ...

  8. Codeforces Round #382 Div. 2【数论】

    C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...

  9. Codeforces Round #382 (Div. 2) 解题报告

    CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了 ...

随机推荐

  1. centos6.3部署配置LVS主从

    LVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器集群系统.这个项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.它的官方网址 ...

  2. Python_实现json数据的jsonPath(精简版)定位及增删改操作

    基于python实现json数据的jsonPath(精简版)定位及增删改操作   by:授客 QQ:1033553122 实践环境 win7 64 Python 3.4.0 代码 #-*- encod ...

  3. Android为TV端助力 集成第三方播放器,实现全屏播放

    下面这Demo链接:Android实现全屏播放,各种格式支持直播,点播,不收费!

  4. 安卓开发:UI组件-RadioButton和复选框CheckBox

    2.5RadioButton 为用户提供由两个及以上互斥的选项组成的选项集. 2.5.1精简代码 在按钮变多之后,多次重复书写点击事件有些繁琐,我们在这里创建一个事件OnClick,每次点击时调用该事 ...

  5. 2019Java查漏补缺(一)

    看到一个总结的知识: 感觉很全面的知识梳理,自己在github上总结了计算机网络笔记就很累了,猜想思维导图的方式一定花费了作者很大的精力,特共享出来.原文:java基础思维导图 自己学习的查漏补缺如下 ...

  6. Git - git clone - 将远端仓库克隆拷贝到本地

    索引: 目录索引 参看代码 GitHub: git.txt 一.示例: git clone https://github.com/liumeng0403/lm.solution.git 二.说明: 1 ...

  7. spring学习总结——装配Bean学习四(导入和混合配置)

    情景:在典型的Spring应用中,我们可能会同时使用自动化和显式配置(JavaConfig)或者XML配置,幸好在Spring中,这些配置方案都不是互斥的.你尽可以将JavaConfig的组件扫描和自 ...

  8. chome(谷歌浏览器)上传文件崩溃/上传图片崩溃/打开浏览文件未响应 解决方案

    测试解决方案:关闭搜狗输入法(我用的是搜狗输入法,若使用其他输入法,此方案也可能适用),再测试是否重现浏览器崩溃问题 可选解决方案:升级搜狗输入法(如果想 卸载输入法 也可以) 前面有段时间chome ...

  9. 关于opencv模板匹配功能的项目测试记录

    模板匹配功能介绍的很好的一篇博客:https://www.cnblogs.com/XJT2018/p/9934139.html 就如上述博客所言:“若原图像中的匹配目标发生旋转或大小变化,该算法无效. ...

  10. C语言----int (*p)[4] ---思考总结

    a+1  跳4个int (*a)+1 跳一个int