OJ----codeforces
anthony1314
退役acmer 想要找到后端实习的菜鸡
展开
-
codeforces 165B - Burning Midnight Oil codeforces 【二分+快速幂】
#include<bits/stdc++.h>#define ll long longusing namespace std;ll powp(int k, int l){//快速幂 ll i, j, sum = 1; for(i = 1; i <= l; i++) { sum*=k; } return sum;}int cheak(int m, int k...原创 2018-05-11 22:38:38 · 146 阅读 · 0 评论 -
codeforces897 c Nephren gives a riddle [递归]
给你四个字符串string a = "What are you doing at the end of the world? Are you busy? Will you save us?";string b = "What are you doing while sending \"";string c = "\"? Are you busy? Will you send \"";st...原创 2019-03-23 09:33:13 · 206 阅读 · 0 评论 -
codeforces679A 交互题目入门
系统随机给你一个 [2,100]的数x你可以进行不超过20次询问每次询问输出一个数 系统会回答是否x的因子如果是则输入yes 否则则为no请问x为合数还是素数题解:任意一个合数都有两个或以上素数的因子因此我们只要先打表打出2-50的素数, 还有不超过50的素数的平方int prime[] = { 2,3,5,7,11,13,17,19,23,29,31,...原创 2019-03-23 10:04:06 · 1507 阅读 · 0 评论 -
codeforces 1139c Edgy Trees 【并查集 】
题意:一颗有n个节点的树树的边为红色或者黑色给你节点数 n 和 k让你求出长度为k的 1 - n 的全排列 作为路径在该树上 经过黑色的边 的数量 答案 mod 1e9+7题解:将思路反过来想 我们先求出 所有的方案书 再减去不合格 的方案数量想要让边都不为黑色 的路径 肯定在全是红色的边区域内这就是并查集 我们只要求出有多少块 并查集区域...原创 2019-03-28 22:19:43 · 235 阅读 · 0 评论 -
codeforces 1119D Frets On Fire【预处理 + 二分】
题意:给你一个长度为n的数组 0< n < 100000每个数的大小为0~10^18现在有q次查询每次给你l r意思为数组每个数每次加上同一个数字 得到一个新的数组 加的数字从l到r请问这些数组中不同数字的个数为多少题解:这道题难度在暴力会tle,因为查询太多次我们可以先预处理将输入的数字先排序,处理得出相邻的数的差,再讲差值进行排序,二分找...原创 2019-04-09 14:01:52 · 277 阅读 · 0 评论 -
CodeForces - 841D Leha and another game about graph【构造】 + 【dfs】
题意:给你n个点,m条双向边构成一个重边无环的图每个顶点有的值为{-1,0,1}现在要你选择保留这个图中的某些边(可以是0条)使得每个顶点满足以下两个条件之一1. d[i] = -12.d[i] =dgree[i] % 2 (dgree[i] 为该点的度数)请问是否有答案,无则输出-1,有则输出其中一个答案,有几条边,且是第几条边题解:这是一个无环的图,我...原创 2019-04-29 16:39:53 · 112 阅读 · 0 评论 -
Codeforces 1197D Yet Another Subarray Problem 【DP】【最大子区间和】
题意:给你一个长度为n的a数组,要你去求出最大的值。题目链接:http://codeforces.com/contest/1197/problem/D题解:我们不难看出这道题求的是最大子区间和,但是加了个限制条件,求的区间和必须减去 (区间的长度 / m) 向上取整的值。求最大子区间和我们可以用DP的思想 O(n) 求出来,这道题暴力写过不了我们可以做一个预处理...原创 2019-07-23 12:25:12 · 295 阅读 · 3 评论 -
Educational Codeforces Round 70 (Rated for Div. 2) A.B.C.D
A. You Are Given Two Binary Strings...找出第二个串最后一个1的位置 在第一个串的这个位置及之前找 第一个1的位置,两个位置相减就是答案#include<bits/stdc++.h>using namespace std;int main() { int t; for(cin>>t; t; t--){ string...原创 2019-08-09 13:32:22 · 583 阅读 · 0 评论 -
Codeforces Round #579 (Div. 3) A.B.C.D.E.F
A - Circle of Students/*Algorithm:Author: anthony1314Creat Time:Time Complexity:*/#include<iostream>#include<algorithm>#include<queue>#include<vector>#include<se...原创 2019-08-14 04:07:51 · 175 阅读 · 0 评论 -
Codeforces Round #578 (Div. 2) A.B.C.D.E
A. Hotelier用个数组标记房间有没有人,循环10次即可/*Algorithm:Author: anthony1314Creat Time:Time Complexity:*/#include<bits/stdc++.h>#define ll long longusing namespace std;char ss[100005];int a[15] =...原创 2019-08-12 02:36:49 · 209 阅读 · 0 评论 -
Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) A.B.C.D
A. XORinacci每三个数字一个循环/*Algorithm:Author: anthony1314Creat Time:Time Complexity:*/#include <algorithm>#include <iostream>#include <cstdlib>#include <cstring>#i...原创 2019-08-26 04:26:06 · 168 阅读 · 0 评论 -
Codeforces Round #586 (Div. 1 + Div. 2) 题解
codeforces 1120 A - Cards题意: 给你若干个zero和若干个one的字母卡片的乱序,求组合后的0和1排列最大号码思路: 判断z的个数就好了,就可以求出1的个数都放前面,然后在输入相应的0的个数#include<bits/stdc++.h>using namespace std;char ss[100005];int main() { int z =...原创 2019-09-19 20:53:01 · 263 阅读 · 0 评论 -
codeforces897 D Ithea Plays With Chtholly【贪心 + 交互题】
交互输入题给你 n m c代表有n张白纸,编号1-n, 系统会给你m次以内 得询问 每次给你一个[1 , c]的数字你可以将这个数字填在某张纸上 如果该纸上有写数字了 你可以对其进行更改要你打印出 每一次系统给的数字你是填在的纸的编号请问如何填能够在 所有纸被填满的那一刻 让纸上的数字沿着编号非递减题解:有 m的取值范围 为 c/2 * n所以每张纸最多都可以...原创 2019-03-23 11:44:31 · 468 阅读 · 0 评论 -
codeforces1130 B C D
目录B. Two CakesC. ConnectD2. Toy TrainB. Two Cakes有一个长度为2*n的数列 里面有1-n 每个数字各两个 顺序是乱的求两条1到n的最短路径之和 每个数字只能用一次题解:p[x][0/1] 为左边的x的位置 和右边的x的位置f[i][0/1]为前i层蛋糕,第一个人到更靠左/右的i位置(相对的,第二个人就去另一个位置)...原创 2019-03-04 19:44:13 · 246 阅读 · 0 评论 -
codeforces 1051D Bicolorings 【DP】
题目链接:传送门题意:给你一个2行n列的矩阵 每一个格子为白色或者黑色 当有着共同边界且颜色相同的的两个格子被定义为一块区域求2行n列 被分为 m块区域的方案数题解:一开始以为是数学题,死命推公式,结束看了蔡队的才知道是dp,发现所有人都会dp。AC_code:#include<bits/stdc++.h>using namespace std;#define...原创 2018-10-06 17:03:16 · 205 阅读 · 0 评论 -
codeforces 977d
#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 110;int n;int gt[N];bool f[N];ll a[N];int main() { scanf("%d", &n); for (int i = 1; i <= n;...原创 2018-05-09 18:25:41 · 266 阅读 · 0 评论 -
Sagheer and Nubian Market 812c [二分枚举]
题目大意:给你n个物品,还有m钱每个物品的价值为k【i】;请你用不超过m钱买最多个物品,有多少个 ,花了多少钱?每个物品的价格为该物品的价格k【i】+ (该物品的下标+1)* 买的物品个数思路 :简单的二分枚举一开始就想到要开longlong不过在cf输入输出c++不能交%lld 新手的我实在不知道该怎么办只能按照他的提示改为定义int64改为%I64dAC...原创 2018-04-16 22:14:20 · 179 阅读 · 0 评论 -
CodeForces - 812B [DP]
这道题一开始以为是有规律的的, 想通过最大区域的0来计算,然后用bfs来解决,但是写到一半又发现思路错了,最后还是学长提醒我用dp思路去做,纪录最右和最左的点,dp已经很久没做了,看了网上其他题解才明白要怎么去维护那些状态,里面有几个点需要注意一下:1.所有的数都为02.最下面楼层的dp方式不一样3.每次dp要保存前一个的状态 因为下一次会变化AC代码:#include<...原创 2018-04-16 19:28:14 · 176 阅读 · 0 评论 -
codeforces769b
题意思路:先输入当前每个人所有的发送次数,并且纪录下当前位置。判断 :第一个人的发送次数是否为0, 以及所有发送次数是否为小于人数,是的话直接输出打印-1.当第二个到第n个的人根据发送次数从小到大进行排序,最近进行循环遍历打印发送的过程AC代码:#include <iostream>#include <algorithm>using namespa...原创 2018-03-29 21:35:07 · 174 阅读 · 0 评论 -
codeforces 869a
题目大意:给出1到n(偶数),平均分为两个各(n/2)个元素的集合,从上面的集合随机抽取一个数与下面的数异或,如果得出的值在输入中出现,则ans+1,如果ans最后为偶数则Karen赢。思路:a^b = c, a^c = a^ b^a = b;这是一个循环,如果输入中有出现,那必定成为一个 循环 ,出现的次数为偶数,无论怎么样都是Karen赢。#include<stdi...原创 2018-03-28 09:34:23 · 242 阅读 · 0 评论 -
CodeForces - 899C
题目大意:给出一个n,把1到n分成两个集合,绝对值差为最小;打印出绝对值差,输出第一个集合的元素个数,和各个元素,多少个元素都无所谓。思路:这道题第一就可以判断出绝对值差只有0和1两种情况,关键是怎么分配元素,而其中有一个小规律,就是每四个连续的数,可以分成两个一样大的集合,这样我们可以先把元素个数模4通过剩下判断前几个分成的两个集合绝对值差,来确定绝对值差,打印每个元素也是先打印前...原创 2018-03-28 07:48:47 · 1048 阅读 · 0 评论 -
codeforces 899b
题目大意:给出不超过24个数字,判断是否是连续的月份思路:打表循环判断要注意平平年 平闰年 闰闰年ac代码:#include<bits/stdc++.h>using namespace std;int m[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; int m1[12] = {31,29,31,30,31,30,31...原创 2018-03-26 17:15:13 · 225 阅读 · 0 评论 -
CodeForces - 892C Pride
题意:给你一个长度为n的数组,每次可以进行一种操作把第i个数和第i+1个数替换为第i个数或者第i+1个数的gcd,问最少多少步能够使得序列全部变成1.思路:这道题的只要数组里面有一个1 ,操作就变得简单了。如果只有一个1那么只要再执行n - 1步操作就可以全变成1,i个1就执行n-i步操作,就可以了,如果给的初始数组没有1那么我们就化出一个1来再加上n - 1,考虑每一段区间i ~ j(i &...原创 2018-03-19 21:29:45 · 190 阅读 · 0 评论 -
CodeForces - 892B (第一篇题解)写得不是很好
题意:有n个人,每个人都有长度不一样的爪子,所有人同时杀人,且只能杀在你前面的人(也就是数组小标比你小的人)爪子长度的大小决定你可以杀在你前面的人数,问最后还剩多少人?思路:这道题可以从最后面开始进行遍历,每次声明一个变量len把当前爪子当前所能够到的最前面的位置存进去,与前一个所能够到的位置(j - a[j])进行比较最小值,变量len就更新,循环不断判断当前位置是否大于len...原创 2018-03-18 22:12:37 · 285 阅读 · 0 评论 -
codeforces 1017C The Phone Number [分块+贪心]
题目链接题意:给你一个数n,让你给出一个有n个数的排列,这n个数分别是1到n,求一个最长上升子序列和最长递减子序列的长度和最小的排列。题解:通过样例1可以看出只要n是某个整数的平方,那么可以将其分为sqrt(n)块,每一块为sqrt(n)个,那么夹杂在(n-1)^2 和 n^2 的数该如何方块呢,为何方块就是因为如果方块进行排列:那么每个块以内按递增进行排列,块与块之间按递减排列, 块数...原创 2018-08-09 15:44:51 · 239 阅读 · 0 评论 -
codeforces 1025B Weakened Common Divisor【gcd】
题目链接:传送门题意:给你n对数, 每队数字有两个,问是否有一个数不等于1至少能整除每一对数中其中一个数字?如果有,输出那个数,没有则输出-1,答案多个输出其中一个。题解:能整除这个数的一定是该数的因子,而整除这对数其中一个数的一定是这对数两个数乘积的因子,那么我们可以把首项其中一个数与接下来每一项的乘积求gcd,得出来的结果不等于1则再去求其最小不为1因子。AC代码:#...原创 2018-08-23 11:02:40 · 187 阅读 · 2 评论 -
Codeforces1216C White Sheet【矩形面积交】【计算几何】
题意:给你三个矩形的左下角和右上角的下标请问第二个矩形和第三个矩形是否能完全覆盖第一个矩形,能输出"NO",否则输出"YES"思路:计算几何模板题通过面积之间的关系可以得出第二个矩形和第三个矩形一共覆盖了第一个矩形多少面积进行判断面积 = 第一个矩形与第二个矩形的交 + 第一个矩形与第三个矩形的交 + 三个矩形的交我的代码:#include<bits/stdc++.h&g...原创 2019-09-22 11:39:22 · 234 阅读 · 0 评论