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. 安卓开发:UI组件-布局管理器和文本显示

    接下来的随笔,记录了在学习b站up主:天哥在奔跑,录制的教学视频的同时,进行一个app开发. up主:天哥在奔跑 视频地址:https://www.bilibili.com/video/av38409 ...

  2. NFS 安装与配置

    NFS通常用于网络中的多台计算机实现共享存储. 由于测试环境没有购买阿里云的NFS,所以自己搭建一个NFS文件系统,实现一些比如上传图片,静态资源等同享功能. 下面的测试是在CentOS releas ...

  3. c# 多线程委托传参方式

    1.定义一个线程调用的方法函数 private void RTPServer(object _Serverip) { IPEndPoint Serverip = _Serverip as IPEndP ...

  4. Linux学习历程——Centos 7 grep命令

    一.命令简介 grep 命令用于在文本中执行关键词搜索,并显示匹配的结果. 由于grep命令参数很多,这里只列出一些常用的参数. 参数 作用 -b 将可执行文件当作文本文件来搜索 -c 仅显示找到的行 ...

  5. macOS 安装 Java (Homebrew)

    macOS 安装多个 Java 版本 Homebrew 是 macOS 下的一个非常好用的包管理工具, caskroom 则是基于 Homebrew 构建的一个强大的应用程序管理器. Homebrew ...

  6. Python爬虫实战之Requests+正则表达式爬取猫眼电影Top100

    import requests from requests.exceptions import RequestException import re import json # from multip ...

  7. Redis操作hash

    来自:http://www.cnblogs.com/alex3714/articles/6217453.html Hash操作 hash表现形式上有些像pyhton中的dict,可以存储一组关联性较强 ...

  8. Jenkins + Ansible + Gitlab之ansible篇

    Ansible介绍 什么是Ansible? Ansible是一个开源部署工具 开发语言:Python 特点:SSH协议通信,全平台,无需要编译,模块化部署管理 作用:推送Playbook进行远程节点快 ...

  9. Kafka 详解(二)------集群搭建

    这里通过 VMware ,我们安装了三台虚拟机,用来搭建 kafka集群,虚拟机网络地址如下: hostname                      ipaddress             ...

  10. 第三章 启动rabbitmq的webUI

    一.启动步骤 1.启动rabbitmq rabbitmq-server (前台启动)或者rabbitmq-server -detached(后台启动) 2.启动rabbitmq_management ...