[Codeforces]Round 516

A Make a triangle!

题意:给定三根线段,问最少要延长多少才能拼成一个三角形。

数学题。

B Equations of Mathematical Magic

题意:求$a - (a \oplus b)-x=0 $的非负整数解的个数。

打表发现是\(a\)在二进制下\(1\)的数量。

C Oh Those Palindromes

题意:求字符串\(S\)重新排列后的回文子串的最大数量。

猜想一样的放在一起会最多,然后就对了。

D Labyrinth

题意:给定一个迷宫,有一些障碍,最多只能向左\(x\)次,向右\(y\)次,问能到几个点。

就是一个bfs。注意如果到达一个点的时候比上一次向左或向右的次数更多的话,就要继续入队,但不重复计算答案我就在这被hack了

E Dwarves, Hats and Extrasensory Abilities

题意:交互题,每次输出一个点的坐标,然后读入这个点的坐标的颜色(黑或白),最后输出一条线使得同色的点在这条线的一侧。

我一开始想的是在一个圆弧上二分极角,保证同色的连续就行了,但是,这样的话精度会爆(30次二分)。

F Candies for Children

题意:有\(n\)个人围成一个环,从\(l\)开始,每个人拿一个或两个糖,转若干圈后,到\(r\)停止,一共消耗了\(k\)个糖。问最多有多少个人会拿两个糖。

我是转化成求满足\(k\bmod (n+y) \le y\)且\(k\bmod (n+y)\le (r-l)\bmod n +1\)的最大的\(y\)。然后就不会了2333

原文地址:https://www.cnblogs.com/wyxwyx/p/cfr516.html

时间: 2024-08-01 21:41:25

[Codeforces]Round 516的相关文章

Codeforces Round #516 (Div. 2, by Moscow Team Olympiad)

Codeforces Round #516 (Div. 2, by Moscow Team Olympiad) https://codeforces.com/contest/1064 A 1 #include<bits/stdc++.h> 2 #define pb push_back 3 using namespace std; 4 5 bool Check(int a,int b,int c){ 6 if(a+b>c&&b+c>a&&a+c>

Codeforces Round #516 Div2 D. Labyrinth

https://codeforces.com/contest/1064/problem/D 比赛时先交了个能 AC 的代码,之后感觉 vector 会超时,然后重交了一份,开了个很大的静态数组,system test 时直接爆了 ML. 不过赛后说什么也没用了对吧... 题意 有一个迷宫,你可以上下左右走,但是要求左走的次数不超过 \(x\),右走的次数不超过 \(y\),问有多少个点能从起点到达. 题解 比赛时瞪了一会儿样例随便 yy 了个贪心,但是不会证... 一个点能被到达,当且仅当存在一

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 -> step=k+1 1.step=k 使用一次左/右 到达 step=k+1 2.step=k+1 无限使用上下,得到所有 step=k+1 的状态 用dijkstra+堆优化 / spfa 超时. 1 #include <bits/stdc++.h> 2 using namespace

Codeforces Round #516 (Div. 2) (A~F)

目录 A.Make a triangle! B.Equations of Mathematical Magic C.Oh Those Palindromes D.Labyrinth(BFS) E.Dwarves,Hats and Extrasensory Abilities(交互 二分) D.Labyrinth E.Dwarves,Hats and Extrasensory Abilities 比赛链接 A.Make a triangle! 不放了. B.Equations of Mathema

Codeforces Round #516 (Div. 1, by Moscow Team Olympiad) B

题链 Description 给一张方格图,对于上下移动无限制,左右移动数分别不能超过L,R,求能到多少点. Sol 发现 新的y坐标=老坐标-左移操作数+右移操作数 所以我们只需最小化左移操作数即可,最短路. Code #include<bits/stdc++.h> #define N 2007 #define pii pair<int,int> #define fi first #define se second using namespace std; char p[N][N

Codeforces Round #516 (Div. 1, by Moscow Team Olympiad) C

题链 Description 和交互库交互,你给出n个点,交互库指定颜色,求一条直线分割颜色. Sol 分别在x轴,y轴上二分即可. Code #include<bits/stdc++.h> #define Mid (l+r>>1) using namespace std; int n,l,r; char p1[102],p2[102],p3[102]; void work(int x,int pos,int g) { l=500000000; r=1000000000; for

Codeforces Round #516 (Div. 1, by Moscow Team Olympiad) D

题链 Description 解一个线性规划(大雾) Sol 单纯形我们发现我们可以暴力枚举转的圈数,而这个东西可以数论分块优化. Code #include <bits/stdc++.h> #define LL long long using namespace std; LL n,x,k,lb,ub,l,r,ans=-1; int main() { scanf("%lld%lld%lld%lld",&n,&l,&r,&k); x=(r&g

Codeforces Round #516 (Div. 1) 题解

A.Oh Those Palindromes 直接排序之后输出就行了. 证明的话直接跟据同一种字符最多能在多少个回文串中贡献答案就行了. #include <bits/stdc++.h> #define for1(a,b,i) for(int i=a;i<=b;++i) #define FOR2(a,b,i) for(int i=a;i>=b;--i) using namespace std; typedef long long ll; #define M 500005 int n

Codeforces Round #516 (Div. 1, by Moscow Team Olympiad) E

题链 Description 给一个排列,要求每个激光打到指定的接受器上,最大化这个数量,你的手段只有在n*n的位置上放平面镜. Sol 我们发现一行要么只放‘/’要么只放‘\’,又发现answer=n||answer=n-1,这可以倒着合并. Description #include<bits/stdc++.h> #define N 1006 using namespace std; int n,a[N],last; char ans[N][N]; signed main () { scan