Codeforces Round #516 (Div. 2, by Moscow Team Olympiad)
A. Make a triangle!
题意
让某段最少增加多少使得构成三角形
思路
让较小两段往最长段去凑
代码
#include <bits/stdc++.h>
#define DBG(x) cerr << #x << " = " << x << endl;
using namespace std; int a[5]; int main(){
scanf("%d%d%d",&a[1],&a[2],&a[3]);
sort(a+1,a+1+3);
if(a[1]+a[2] > a[3])puts("0");
else printf("%d\n",a[3]-a[2]-a[1]+1);
return 0;
}
B. Equations of Mathematical Magic
题意
存在多少种$x$使得$x$与$a$满足题式
思路
打表发现与$a$的二进制表示中$1$的数量有关
代码
#include <bits/stdc++.h>
#define DBG(x) cerr << #x << " = " << x << endl;
using namespace std;
typedef long long LL; int t,n;
LL pw[35]; int main(){
scanf("%d",&t);
pw[0]=1;
for(int i=1;i<35;i++)pw[i]=2LL*pw[i-1];
while(t--){
scanf("%d",&n);
int cnt=0;
for(int i=0;i<=31;i++)if((1<<i)&n)cnt++;
printf("%lld\n",pw[cnt]);
}
return 0;
}
C. Oh Those Palindromes
题意
用原串字符构造出子串中回文串最多的串
思路
让相同字符相邻必定为最优情况
代码
#include <bits/stdc++.h>
#define cerr << #x << " = " << x << endl;
const int maxn = 1e5+5;
using namespace std; int n,cnt[30];
char s[maxn]; int main(){
scanf("%d%s",&n,s+1);
for(int i=1;i<=n;i++)cnt[s[i]-'a']++;
for(int i=0;i<26;i++){
for(int j=0;j<cnt[i];j++)printf("%c",i+'a');
}puts("");
}
D. Labyrinth
题意
从某点出发,左右移动次数有限,最多能到达几个合法点
思路
优先进行上下移动,用双端队列模拟bfs
代码
#include <bits/stdc++.h>
#define DBG(x) cerr << #x << " = " << x << endl;
const int maxn = 2e3+5;
using namespace std; int n,m,sr,sc,lm,rm;
int tot,vis[maxn][maxn];
int tr[4]={1,-1,0,0},tc[4]={0,0,1,-1};
char mp[maxn][maxn]; struct node{
int r,c,t1,t2;
}; void bfs(){
deque<node>Q;
vis[sr][sc]=1;
Q.push_back({sr,sc,lm,rm});
while(!Q.empty()){
node tmp=Q.front();
Q.pop_front();
for(int i=0;i<4;i++){
node now=tmp;
now.r+=tr[i],now.c+=tc[i];
if(now.r >= 1 && now.r <= n && now.c >= 1 && now.c <= m && !vis[now.r][now.c] && mp[now.r][now.c] == '.'){
if(i < 2){tot+=vis[now.r][now.c]=1;Q.push_front({now.r,now.c,now.t1,now.t2});}
else{
if(tc[i] == -1 && now.t1){
tot+=vis[now.r][now.c]=1;
Q.push_back({now.r,now.c,now.t1-1,now.t2});
}
if(tc[i] == 1 && now.t2){
tot+=vis[now.r][now.c]=1;
Q.push_back({now.r,now.c,now.t1,now.t2-1});
}
}
}
}
}
} int main(){
scanf("%d%d%d%d%d%d",&n,&m,&sr,&sc,&lm,&rm);
for(int i=1;i<=n;i++)scanf("%s",mp[i]+1);
bfs();
printf("%d\n",tot+1);
return 0;
}
E. Dwarves, Hats and Extrasensory Abilities
题意
交互题,每次询问一个点的颜色,最后用一条直线将两种颜色的点分开,不存在这种直线也会WA
思路
先询问坐标上的点,二分枚举剩余点,颜色与第一点相同就$l=mid$,否则$r=mid$,等于把与第一点相同色的点分在一边,剩下的分在另一边
代码
#include <bits/stdc++.h>
#define DBG(x) cerr << #x << " = " << x << endl;
const int maxn = 35;
using namespace std; int n;
string str[maxn]; int main(){
cin >> n;
cout << "0 2\n";
fflush(stdout);
cin >> str[1];
int l=1,r=(int)1e9,mid;
for(int i=2;i<=n;i++){
mid=(l+r)/2;
cout << mid << ' ' << 2 << endl;
fflush(stdout);
cin >> str[i];
(str[i][0] == str[1][0]) ? l=mid : r=mid;
}
cout << l << ' ' << 3 << ' ' << r << ' ' << 1 << endl;
fflush(stdout);
return 0;
}
F. Candies for Children
留坑,寒假补
Codeforces Round #516 (Div. 2, by Moscow Team Olympiad)的更多相关文章
- Codeforces Round #516 (Div. 2, by Moscow Team Olympiad) D. Labyrinth
http://codeforces.com/contest/1064/problem/D 向上/向下加0,向左/右加1, step = 0,1,…… 求的是最少的步数,所以使用bfs. step=k ...
- Codeforces Round #516 (Div. 2, by Moscow Team Olympiad) D. Labyrinth(重识搜索)
https://codeforces.com/contest/1064/problem/D 题意 给你一个有障碍的图,限制你向左向右走的次数,问你可以到达格子的个数 思路 可以定义状态为vi[x][y ...
- [Codeforces Round #516 (Div. 2, by Moscow Team Olympiad) ](A~E)
A: 题目大意:给你$a,b,c$三条边,可以给任意的边加任意的长度,求最少共加多少长度使得可以构成三角形 题解:排个序,若可以组成,输出$0$,否则输出$c-a-b+1(设a\leqslant b\ ...
- Codeforces Round #441 (Div. 2, by Moscow Team Olympiad) D. Sorting the Coins
http://codeforces.com/contest/876/problem/D 题意: 最开始有一串全部由"O"组成的字符串,现在给出n个数字,指的是每次把位置n上的&qu ...
- Codeforces Round #441 (Div. 2, by Moscow Team Olympiad) C. Classroom Watch
http://codeforces.com/contest/876/problem/C 题意: 现在有一个数n,它是由一个数x加上x每一位的数字得到的,现在给出n,要求找出符合条件的每一个x. 思路: ...
- Codeforces Round #441 (Div. 2, by Moscow Team Olympiad) B. Divisiblity of Differences
http://codeforces.com/contest/876/problem/B 题意: 给出n个数,要求从里面选出k个数使得这k个数中任意两个的差能够被m整除,若不能则输出no. 思路: 差能 ...
- Codeforces Round #441 (Div. 2, by Moscow Team Olympiad) A. Trip For Meal
http://codeforces.com/contest/876/problem/A 题意: 一个人一天要吃n次蜂蜜,他有3个朋友,他第一次总是在一个固定的朋友家吃蜂蜜,如果说没有吃到n次,那么他就 ...
- Codeforces Round #441 (Div. 2, by Moscow Team Olympiad)
A. Trip For Meal 题目链接:http://codeforces.com/contest/876/problem/A 题目意思:现在三个点1,2,3,1-2的路程是a,1-3的路程是b, ...
- CF Round #516 (Div. 2, by Moscow Team Olympiad)
前言:依旧菜,\(A\)了\(4\)题,不过这次上蓝了挺开心的. A. Make a triangle! Description 给出\(3\)根木棍,希望用它们拼成三角形,可以将其中的某些木棍增长, ...
随机推荐
- pagehelper 使用
MySQL对分页的支持 简单来说MySQL对分页的支持是通过limit子句.请看下面的例子. limit关键字的用法是 LIMIT [offset,] rows offset是相对于首行的偏移量(首行 ...
- 用table绘制 等宽等间距的单元
css: .test1 { empty-cells: show;/*show:指定当表格的单元格无内容时,显示该单元格的边框.*/ border-spacing: 10px 10px;/*用长度值来定 ...
- oh-my-zsh: bracketed-paste-magic:zle:47: not enough arguments for -U
今天突然发现粘贴的时候就提示这个错误,通过查阅资料已经解决 解决方法 分析问题,是oh-my-zsh的bracketed-paste-magic功能出现了异常,并未找到更好的方法,暂时先禁用掉. 修改 ...
- P1024 一道naive的二分
好吧,这道题思路还是比较简单的.整个程序大体上很快就打出来了,然后修改了解为整数的情况. 但是交上去一直是50分,最后我很无耻的看了题解,然后抄了一个玄学if回来,瞬间AC,不知道为什么... 这句就 ...
- [bzoj1692][队列变换]
题目链接 思路 首先肯定想到贪心,从队尾和队首取更小的那个. 但是如果遇到队尾和队首一样大的情况呢,总不能再挨个往前比较.所以就把整个字符串倒过来再挂到现在字符串的后面,也就是把当前字符串对称过去.然 ...
- 第二十二节,TensorFlow中RNN实现一些其它知识补充
一 初始化RNN 上一节中介绍了 通过cell类构建RNN的函数,其中有一个参数initial_state,即cell初始状态参数,TensorFlow中封装了对其初始化的方法. 1.初始化为0 对于 ...
- 安卓和java开发环境的安装
java配置安卓需要,sdk,jdk(java),adt,eclipse 对于jdk的配置和安装: 1 卸载原来的jdk,重新配置环境变量只需要:在系统变量中把新的jdkJ安装路径写到“JAVA_HO ...
- TODO monkey笔记,PC端执行和手机端执行
微博不给力啊 吞我笔记,还好我有txt... 1.环境准备:安装Android sdk, 配置环境变量:platfrom_tools,tools,aapt;java:2.查询当前apk信息: aapt ...
- 转:upload.parseRequest为空
上传是items一直是空list.导致原因是struts2把原始的原来S2为简化上传功能,把所有的enctype="multipart/form-data"表单做了wrapper最 ...
- hystrix实战之javanica
spingboot2.0.3集成hystrix的,访问dashboard的另外一种方式: https://blog.csdn.net/qq_38455201/article/details/80783 ...