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. zabbix3.4 监控mysql 数据库连接数

    zabbix3.4 监控mysql 数据库连接数具体监控配置待定,近期即将发布!

  2. 等价路由在路由器和CE交换机上默认的行为是不同的,路由器总是走第一个下一跳,CE交换机是逐包。

    结论: 1.在eNSP中实验,路由器和CE交换机对于等价路由的默认转发行为是不同的, 路由器:默认是基于流的转发形态,更准确的来讲,ping两个不同的下一跳,都是走等价路由的第一个路由,不走第二条路由 ...

  3. vue中input输入框的模糊查询实现

    最近在使用vue写webapp在,一些感觉比较有意思的分享一下. 1:input输入框: <input class="s-search-text" placeholder=& ...

  4. 使用synchronized的几种场景

    1.修饰一个方法synchronized 修饰一个方法很简单,就是在方法的前面加synchronized,例如: public synchronized void method() { // todo ...

  5. Android Picasso最详细的使用指南

    Picasso 是Square 公司开源的Android 端的图片加载和缓存框架.Square 真是一家良心公司啊,为我们Android开发者贡献了很多优秀的开源项目有木有!像什么Rerefoit . ...

  6. Inspection info: Checks Spring Boot application .properties configuration files. Highlights unresolved and deprecated configuration keys and in

    Cannot resolve class or package ‘jdbc’ less… (Ctrl+F1) Inspection info: Checks Spring Boot applicati ...

  7. 前后端分离djangorestframework—— 在线视频平台接入第三方加密防盗录视频

    加密视频 在以后的开发项目中,很可能有做在线视频的,而在线视频就有个问题,因为在线播放,就很有可能视频数据被抓包,如果这个在线视频平台有付费视频的话,这样就会有人做点倒卖视频的生意了,针对这个问题,目 ...

  8. c/c++ 多线程 等待一次性事件 std::promise用法

    多线程 等待一次性事件 std::promise用法 背景:不是很明白,不知道为了解决什么业务场景,感觉std::async可以优雅的搞定一切的一次等待性事件,为什么还有个std::promise. ...

  9. c/c++ linux epoll系列2 利用epoll_wait查看是否可以送信

    linux epoll系列2 利用epoll_wait查看是否可以送信 write函数本来是非阻塞函数,但是当缓存区被写满后,再往缓存区里写的时候,就必须等待缓存区再次变成可写,所以这是write就变 ...

  10. LNMP构建动态网站WordPress

    LNMP构建动态网站wordpress 一.部署LNMP架构 1.安装nginx #配置nginx源 cat>/etc/yum.repos.d/nginx.repo<<-EOF [N ...