Codeforces 946 B.Weird Subtraction Process】的更多相关文章

B. Weird Subtraction Process   time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You have two variables a and b. Consider the following sequence of actions performed with these variables: If …
https://zh.wikipedia.org/wiki/%E8%BC%BE%E8%BD%89%E7%9B%B8%E9%99%A4%E6%B3%95 取模也是一样的,就当多减几次. 在欧几里得最初的描述中,商和余数是通过连续的减法来计算的,即从rk−2中不断减去rk−1直到小于rk−1.一个更高效的做法是使用整数除法和模除来计算商和余数: rk ≡ rk−2 mod rk−1 在欧几里得定义的减法版本,取余运算被减法替换 while (b!=0) { if (a>b) a=a-b; else…
Content 有两个数 \(a,b\),执行如下操作: 如果 \(a,b\) 中有一个数是 \(0\),结束操作,否则跳到操作 \(2\). 如果 \(a\geqslant 2b\),那么 \(a\leftarrow a-2b\),并跳回操作 \(1\),否则跳到操作 \(3\). 如果 \(b\geqslant 2a\),那么 \(b\leftarrow b-2a\),并跳回操作 \(1\),否则结束操作. 求出操作结束后的 \(a,b\). 数据范围:\(1\leqslant a,b\le…
[codeforces 293]A. Weird Game 试题描述 Yaroslav, Andrey and Roman can play cubes for hours and hours. But the game is for three, so when Roman doesn't show up, Yaroslav and Andrey play another game. Roman leaves a word for each of them. Each word consist…
C. Hard Process 题目连接: http://www.codeforces.com/contest/660/problem/C Description You are given an array a with n elements. Each element of a is either 0 or 1. Let's denote the length of the longest subsegment of consecutive elements in a, consisting…
题目链接: http://codeforces.com/contest/660/problem/C 题意: 将最多k个0变成1,使得连续的1的个数最大 题解: 二分连续的1的个数x.用前缀和判断区间[i,i+x-1]里面0的个数是否小于等于k. 代码: #include<iostream> #include<cstdio> #include<vector> #include<cstring> using namespace std; ; int n,k; i…
C. Hard Process time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given an array a with n elements. Each element of a is either 0 or 1. Let's denote the length of the longest subsegme…
[题目链接]:http://codeforces.com/problemset/problem/789/D [题意] 给你n个点,m条边; 可能会有自环 问你有没有经过某两条边各一次,然后剩余m-2条边,每条边各2次的 遍历方案,有的话输出方案数 [题解] /* 把每条边都复制一条相同的边; 然后问题就能转化为在2*m条边中,去掉两条边; 然后使得剩下的图能够进行一笔画(每条边都只经过一次) 则使奇点的个数为0或为2就好了; 考虑自环边和普通边; 对于普通边来说: ①如果删掉的两条普通边是不相邻…
[题目链接]:http://codeforces.com/contest/779/problem/B [题意] 问你要删掉几个数字才能让原来的数字能够被10^k整除; [题解] /* 数字的长度不大; 让你删掉最小的数字个数 使得这个数字能被10^k整除; 搜索; 枚举哪些数字被删掉了; bool记录; 最后再全部乘起来; 枚举删掉1个,删掉两个即可.3.4...; 注意前导0只能有一个的情况就好 */ [完整代码] #include <bits/stdc++.h> using namespa…
花了两个晚上来搞这道题. 第一个晚上想思路和写代码,第二个晚上调试. 然而还是菜,一直调不对,我的队友是Debug小能手呀(真的是无敌,哈哈,两个人一会就改好了) D. Timetable   time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Ivan is a student at Berland State Universi…
C. String Transformation   time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given a string s consisting of |s| small english letters. In one move you can replace any character of thi…
随便写写,然后写D的题解. A. Partition   time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given a sequence a consisting of n integers. You may partition this sequence into two sequences b and c …
A B 给你A,B 两个数      1.a=0 OR b=0 break      2.a>=2b a=a-2b        3.b>=2a b=b-2a 如果只是单纯模拟肯定会超时 只需要简化 a>=2b --> a%=2b    b>=2a --> b%=2a就可以 #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #defi…
https://codeforc.es/contest/1088/problem/B 模拟即可. #include<bits/stdc++.h> using namespace std; typedef long long ll; priority_queue<int, vector<int>, greater<int> >pq; int sumsub = 0; int main() { #ifdef Yinku freopen("Yinku.in…
传送门 样例(x): 8 15 16 17 19 27 36 29 33 结果(t1) 15 15 16 18 26 35 28 32 思路:我们可以把最左端和最右端当做两个水龙头,每个水龙头流量的上限就是a[x]. 我们通过贪心,我们尽可能的使用左边的流量,例如样例(x),我们流到第二个点的时候,我们发现左边的流量不可能在第二个点流出16单位流量,说明这个点需要右边流量的补充,而且只需要补充1单位的流量,那有人会问,为什么不多流过来一些呢,这里就是贪心的想法,我左边边能完成的事就不劳烦你右边,…
  计蒜客)翻硬币 //暴力匹配 #include<cstdio> #include<cstring> #define CLR(a, b) memset((a), (b), sizeof((a))) using namespace std; int n, m, t; int main() { int i, j, x; scanf("%d", &t); while(t--) { scanf("%d%d", &n, &m)…
D. Weird Chess Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/538/problem/D Description Igor has been into chess for a long time and now he is sick of the game by the ordinary rules. He is going to think of new rules of th…
F. Ehab and a weird weight formula 题目链接:https://codeforces.com/contest/1088/problem/F 题意: 给出一颗点有权值的树,满足只有一个点的权值最小,然后除开这个点,每个点都有一个权值比它更小的点与之相邻. 然后要求你重构这颗树,满足点权及边权和最小. 点权计算方法: au = au*num(num为与之相邻边的个数); 边权计算方法: e{u,v},we = dis(u,v)*min(au,av)  (dis(u,v…
题目链接:http://codeforces.com/problemset/problem/788/B B. Weird journey time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Little boy Igor wants to become a traveller. At first, he decided to vi…
codeforces 407 div1 B题(Weird journey) 传送门 题意: 给出一张图,n个点m条路径,一条好的路径定义为只有2条路径经过1次,m-2条路径经过2次,图中存在自环.问满足条件的路径数 题解: 推论:对于一条边u-->v,我们将其选作为那两条边之一,那么剩下一条边必然与之相邻或者是自环,因为这样才能满足这两条边只走1次. 那么这条边的贡献值为这条边的相邻边数+自环数,假如这条边本身为自环,那么由于剩下的边可以任选(前一个推论),贡献值为m-1 这个AC时间很6啊23…
题目链接:http://codeforces.com/problemset/problem/660/C 尺取法 #include <bits/stdc++.h> using namespace std; int main() { )]; int n, k; scanf("%d %d", &n, &k); ; i <= n; ++i) { scanf("%d", num + i); } , res = , cnt = , flagl…
题目网址:http://codeforces.com/contest/977/problem/A 题解:给你一个数n,进行k次变换,从末尾开始-1,512变成511,511变成510,510会把0消掉.(看Note应该都能看懂的吧~) 方法:水题...把数字用字符串读入,遇到末尾为0的情况就把字符串长度-1,不然就-1.然后len<=0的情况就输出0(不知道为什么不用<0就可以过了,可能不会出现这样的情况?),反之按长度一个个输出即可~ #include<cstdio> #incl…
题目链接:http://codeforces.com/problemset/problem/660/C 题意: 给你一个长度为 $n$ 的 $01$ 串 $a$,记 $f(a)$ 表示其中最长的一段连续 $1$ 的长度. 现在你最多可以将串中的 $k$ 个 $0$ 变成 $1$,求操作后的 $f(a)$. 题解: (说实话这道题不看tag我不一定能想得出来……) 首先考虑二分枚举答案,对于一个假定的 $f(a)=x$,我们需要判断能不能满足: 用 $dp[i]$ 表示 $a[i-x+1], \c…
Little boy Igor wants to become a traveller. At first, he decided to visit all the cities of his motherland — Uzhlyandia. It is widely known that Uzhlyandia has n cities connected with m bidirectional roads. Also, there are no two roads in the countr…
传送门:http://codeforces.com/contest/788/problem/B 好题!好题! 首先图不连通的时候肯定答案是0,我们下面讨论图联通的情况 首先考虑,如果我们每条边都经过两边,那么肯定是可行的 因为这样相当于把每条边复制一遍,然后问图中是否存在欧拉路径 既然每条边都出现了两遍,那么所有点的度数一定都是偶数,所以肯定有欧拉路径 现在考虑将某两条边变成出现一遍,这样的话可能会有一些点的度数变成奇数 如果我们把两条非自环的边变成出现一遍,并且这两条边不交于同一个点,那么就会…
D. Weird journey time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Little boy Igor wants to become a traveller. At first, he decided to visit all the cities of his motherland — Uzhlyandia. I…
地址:http://codeforces.com/contest/660/problem/C 题目: You are given an array a with n elements. Each element of a is either 0 or 1. Let's denote the length of the longest subsegment of consecutive elements in a, consisting of only numbers one, as f(a).…
B. Ehab and subtraction 题目链接:https://codeforc.es/contest/1088/problem/B 题意: 给出n个数,给出k次操作,然后每次操作把所有数减去最小值,输出这个最小值,k用不完用0来补. 题解: 考虑到重复的数会被一起减去,所以我用了个set来存放这n个数,然后用个累加器记录下减去了多少最小值,把数取出来时减去这个累加器就好了,最后用0来补. 代码如下: #include <bits/stdc++.h> using namespace…
题目链接: C. Hard Process time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given an array a with n elements. Each element of a is either 0 or 1. Let's denote the length of the longest su…
B. Weird Rounding time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Polycarp is crazy about round numbers. He especially likes the numbers divisible by 10k. In the given number of n Polycarp…