codeforces
算球?
在校学生
展开
-
Codeforces Round #200 (Div. 1)
A Rational Resistance思路:因为每个电阻的电阻是1,这就很好算了,比如要求的电阻是a/b,假设a>b,则要求电阻个数就是a/b + b/(a%b) + (a%b)/(b%(a%b))…,直到某一步的模运算那里能够整除。我也不知道为啥这样,找了俩数据,算了算是这个规律,那就这样算了。#include <bits/stdc++.h>using namespace std;type原创 2017-11-25 20:39:35 · 500 阅读 · 0 评论 -
Educational Codeforces Round 21 B. Average Sleep Time
树状数组求区间和,800多ms险过 就A俩水题,看人数第三个也是水题,没水过。第五个是01背包,应该没看错,但直接上背包在第十五个测试数据那超时了。。。。#include <iostream>#include <iomanip>using namespace std;typedef long long ll;const int MAXN = 2e5+10;int n,k;double原创 2017-05-16 01:46:45 · 236 阅读 · 0 评论 -
codeforces Manthan, Codefest 17 B Marvolo Gaunt's Ring(dp)
碰到能套模板的dp还能套,不能套的基本就死了。这么个水题想了一个多小时猜想到解法。交了没多久就被hack了。又调了半个多小时才发现写错变量类型了。 思路:比较基础的dp,对于p,q,r三个数,单独分开操作的。先是计算p和那n个数的乘积,dp[i]保存的是max(num[1…i] * p)。然后再对q操作,这时dp[i]保存的是max(dp[i-1] ,dp[i] + q * num[i])。对r的原创 2017-09-25 16:53:01 · 358 阅读 · 0 评论 -
Codeforces Round #436 (Div. 2) D. Make a Permutation!(优先队列)
优先队列随便搞搞就过了。 出现一次的直接输出。没出现的数字放在优先队列里,当判断到出现多次的数字时,和优先队列的队首比较一下,选择较小的输出。#include <bits/stdc++.h>using namespace std;const int MAXN = 200100;int mark[MAXN];int num[MAXN];int main(){ int n; s原创 2017-09-25 22:58:37 · 207 阅读 · 0 评论 -
Codeforces Round #436 (Div. 2) C. Bus(模拟)
《挑战程序设计竞赛》将优先队列的那里,讲了一个和这个差不多的例题。 我是把所有路合成了一条直的线路,枚举路中间每个加油站,看车是否能到达这里,然后模拟一发就过了。#include <bits/stdc++.h>using namespace std;const int MAXN = 1e4+10;typedef long long LL;LL A[MAXN];int main(){原创 2017-09-25 22:55:41 · 213 阅读 · 0 评论 -
Codeforces Round #436 (Div. 2) B. Polycarp and Letters
真想说一句mmp,被这个题卡了将近俩小时,理解错题意了,wa的是真的怀疑人生了。最后十几分钟枚举了下题意,过了。结束后看了下C和D,发现这是个送分场,没把握住暴力水过。#include <bits/stdc++.h>using namespace std;const int MAXN = 1010;char str[MAXN];int slen;int lcnt,ucnt;int rec[原创 2017-09-25 22:51:11 · 205 阅读 · 0 评论 -
codeforces 851C - Five Dimensional Points(补题)
给你n个五维的点,找到一些这样的点,这个点和任意两个不同的点连线都可以形成直角或者钝角。做题的时候理解错题意了,当成只要有两个点能和他连成直角或钝角就符合条件了。 数量积判断夹角,暴力就好了。 还可以像标程那样,超出某个范围就是0,小范围内暴力。比如二维平面顶多只能由五个点,再多就没有合法的点了。#include <bits/stdc++.h>using namespace std;type原创 2017-09-05 23:17:27 · 353 阅读 · 0 评论 -
codeforces 851 B. Arpa and an exam about geometry
脑袋短路了,只要判断AB和BC距离是否同样就好了。写的时候有点短路,判断多了。。#include <bits/stdc++.h>using namespace std;typedef long long LL;const double eps = 1e-8;struct Point{ Point(){} Point(double _a, double _b):x(_a),y原创 2017-09-05 22:45:34 · 358 阅读 · 0 评论 -
Codeforces Round #428 (Div. 2) D. Winter is here(容斥,补题)
最后几分钟才看这题,看了题解才看懂啥意思。 枚举gcd(gcd>1),比如gcd是b,找到b的倍数(包括b)的个数t,则,这t个数的因子都有b,则这些序列的价值就是∑ti=0i∗(ti)\sum_{i=0}^{t}i*\bigl(\begin{smallmatrix}t\\ i\end{smallmatrix}\bigr),化简后就是t∗2t−1t*{2}^{t-1},因为这都是b的倍数,比如2*原创 2017-08-14 13:50:06 · 238 阅读 · 0 评论 -
Codeforces Round #428 (Div. 2) C. Journey(dfs)
暴力一发。做的时候没设置输出的精度,wa了好几发#include <bits/stdc++.h>using namespace std;const int MAXN = 100010;vector<int> G[MAXN];bool book[MAXN];int n;double res;void dfs(int nm, int step, double p){ bool fla原创 2017-08-14 13:18:45 · 204 阅读 · 0 评论 -
Codeforces Round #428 (Div. 2) B. Game of the Rows(贪心,补题)
四个人的座位拆成双人和单人,先排完四人的,再排二人的,再排单人的。我做的时候直接就把某个group排完,wa到死。看了下别人的贪心策略,写了下就A了#include <bits/stdc++.h>using namespace std;int n,k;int seat[3];int num[110];int main(){ ios::sync_with_stdio(false);原创 2017-08-14 13:17:20 · 220 阅读 · 0 评论 -
Codeforces Round #428 (Div. 2) A. Arya and Bran
#include <bits/stdc++.h>using namespace std;const int MAXN = 110;int candy[MAXN];int main(){ ios::sync_with_stdio(false); int n,k; cin >> n >> k; for(int i = 0; i < n; ++i) c原创 2017-08-14 13:13:17 · 226 阅读 · 0 评论 -
codeforces 27E Number With The Given Amount Of Divisors(反素数)
根据反素数的性质,dfs就好了 反素数讲解:http://blog.csdn.net/ACdreamers/article/details/25049767#include <bits/stdc++.h>using namespace std;typedef unsigned long long ULL;const ULL INF = ~0ULL;int p[16] = {2,3,5,7,1原创 2017-08-05 09:57:47 · 269 阅读 · 0 评论 -
Codeforces Round #425 (Div. 2) B. Petya and Exam
#include <bits/stdc++.h>using namespace std;bool record[30];int star = -1;const int MAXN = 1e5+10;char pstr[MAXN];int pslen = 0;char str[MAXN];int slen = 0;bool solve(){ if(slen <= pslen-原创 2017-07-25 23:07:02 · 213 阅读 · 0 评论 -
Codeforces Round #430 (Div. 2) D - Vitya and Strange Lesson(补题,01Trie)
调了好久,对着好多代码对了老半天,最终结果是数组开小了。以前学Trie的时候学的是用结构体和指针的,对这种数组模拟的还真拿捏不好。 参考:http://blog.csdn.net/mengxiang000000/article/details/77718605 涨知识了,有学到了Trie的新用法。 题意就是给你n个数,询问m次,每次询问给你一个x,让你求这n个数异或x之后,查询这n个数字的me原创 2017-09-01 00:49:41 · 234 阅读 · 0 评论 -
Codeforces Round #430 (Div. 2) C. Ilya And The Tree(补题)
做的时候没看懂题目 看看题解,也挺简单,而且暴力也可以搞过。。。 附个题解:http://blog.csdn.net/xs18952904/article/details/77727920 最近熬夜熬虚了,啥都不相干。#include <bits/stdc++.h>using namespace std;const int MAXN = 2e5+10;vector<int> G[MAXN原创 2017-09-01 13:30:55 · 236 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) A Odds and Ends
小伙伴解法:长度为奇数(因为奇数*奇数=奇数),首尾必定为奇数,才能符合条件。 我的:没怎么仔细分析,暴力搜了一波,就没再管,敢这样做是因为我分析的暴搜的时间复杂度分析错了,就没剪枝,终测tle。剪枝后再提交就ac了。#include <bits/stdc++.h>using namespace std;const int MAXN = 110;int nums[MAXN];bool dp[原创 2017-09-02 00:55:38 · 229 阅读 · 0 评论 -
*Codeforces Round #202 (Div. 1)*
发烧了,烧了五天,吓死我了,还以为要挂了呢。幸好又活过来了。A. Mafia题意:n个人玩一个游戏,每次要选出来一个主持的,剩下n-1个人玩这个游戏。第i个人想玩ai轮游戏,问最少玩多少轮可以满足所有人的要求。思路:我的思路是二分搜索,先排个序,这样第一个人就是要玩轮数最少的,末尾的就是要玩轮数最多的。对于搜索的每个值,我的策略是先满足要玩轮数最少的那个人,这些轮都是由需要轮数最多的人那个人作为主持原创 2017-12-13 19:06:15 · 497 阅读 · 0 评论 -
*Codeforces Round #201 (Div. 1)*
在出题人看到岛娘了,膜一下。感觉这场的题比上一场难了太多了。可能我太菜吧。A Alice and Bob思路:连懵带猜做出来的。求出n个数字的gcd,每个数字都除以gcd,然后得到一个新的集合。集合中最大的数字即最终集合中数字的个数。减掉已有数字的个数,即游戏能玩几回合。根据奇偶性判断胜负即可。看了tutorial,才想到思路。假设有两个数字a,b,假设a>b,令d=gcd(a,b),a=xd,b=原创 2017-11-30 20:55:23 · 487 阅读 · 0 评论 -
Codeforces Round #368 (Div. 2) C. Pythagorean Triples
题解中就在评论中给了个公式,不过评论中有人给了一个证明连接:http://codeforces.com/blog/entry/46681看到毕达哥斯拉三元组,我想到一个题:poj 1305,这个题是枚举来做的,cf这题我也就枚举试了下,不行。。。 我的写法是看的别人结论: 当n被4整除时,结果是n/4 * 3和n/4 * 5 当n被2整除时,结果是((n/2) * (n/2)/2) * 2和(原创 2017-11-04 17:26:58 · 355 阅读 · 0 评论 -
Codeforces Round #367 (Div. 2) C Hard problem (dp)
思路不是太难。每个串两种状态,翻转或者不翻转,从前一个状态转移到当前状态时,当前状态两种情况,前一个状态也是两种情况,公四种情况,扫一遍就好了。dp[i][0]表示第i个串不翻转,dp[i][1]表示第i个串翻转。#include <bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = 1e5+10;c原创 2017-10-26 19:15:51 · 196 阅读 · 0 评论 -
Codeforces Round #364 (Div. 2) D As Fast As Possible
参考:http://blog.csdn.net/acm_fighting/article/details/52003538#include <bits/stdc++.h>using namespace std;int main(){ int n,k; double l,v1,v2; cin >> n >> l >> v1 >> v2 >> k; int g = n/原创 2017-10-02 20:33:11 · 171 阅读 · 0 评论 -
Codeforces Round #364 (Div. 2) E Connecting Universities
n个城市,2k个大学,两两配对,怎么连接才能使总距离最大。 看题后首先想到先找重心,然后所有大学向重心连接的距离和就是结果。后来想想不对,万一有超过k个大学在同一个子树里,那有些就不能向重心连接了。所以呢,就不求重心了,求一个这样的点,这个点所有的子树里的大学个数<=k,然后所有大学到这个点的距离和就是结果了。#include <bits/stdc++.h>using namespace std原创 2017-10-02 20:39:09 · 218 阅读 · 0 评论 -
Codeforces Round #363 (Div. 2) D Fix a Tree(并查集)
一般做cf,我很少会看d题,前边的都写不完,哪有心思看这个。现在刷刷以前cf的后边的题目。 我思路:先用并查集查询出独立的连通块。然后每个连通块,求点双,这样就能找到改变次数。然后发现题目还要求输出所有节点父节点,我想把上边搞完后再重新建树就行了。后来发现,我的能力实现不了。 参考题解:http://blog.csdn.net/u010734277/article/details/5198043原创 2017-10-01 14:29:44 · 243 阅读 · 0 评论 -
Codeforces Round #363 (Div. 2) C Vacations
先爆搜一发,tle,然后改成记忆化搜索,就一直wa http://blog.csdn.net/keyboarderqq/article/details/51960464 相比dp,记忆化搜索还是比较好写的,思路也不难。#include <bits/stdc++.h>using namespace std;const int MAXN = 110;int num[MAXN],n;int dp原创 2017-10-01 14:16:33 · 201 阅读 · 0 评论 -
Codeforces Round #340 (Div. 2) E XOR and Favorite Number(莫队算法)
卿学姐在bilibili上讲的例题 https://www.bilibili.com/video/av4291097/?from=search&seid=3446180275379041786#include <bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = 1<<20;LL pos[MAXN];原创 2017-09-28 21:15:39 · 323 阅读 · 0 评论 -
Codeforces Round #362 (Div. 2) D Puzzles(树形dp)
有点小失落,找以前的题做做。 参考:http://blog.csdn.net/libin66/article/details/51918509 这里边写的听详细,但是看了好久才看懂。说说我的理解。 概率或者期望一直不怎么会算,平时碰到算概率的,或者算期望的,基本就不做了。 这个题我感觉难的地方就是算期望,不过在大佬们看来这还是很水的。 在题解中,期望的计算分为了两部分,一部分是从父节点直接原创 2017-09-28 13:58:42 · 296 阅读 · 0 评论 -
codeforces 817D Imbalanced Array(单调栈)
碰到这题不会做,看题解说是单调栈,就去学了学单调栈,回头再做这题。结果在处理边界的时候犯了个很sx的错误,竟然还想了好几天才发现错误 思路: 设la[i]为从num[i]向左数第一个比num[i]小的数字的下标,ra[i]为从num[i]向右数第一个比num[i]小的数字的下标,则区间(la[i],ra[i])中的最小值就是num[i],(i-la[i])*(ra[i]-i)就是这段区间包含原创 2017-06-21 14:39:46 · 431 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) C. From Y to Y(补题)
看题忽略了这个玩意,忘掉他的功能了,导致一直没看懂题目 就是在一个集合中任取两个元素(每个元素也是一个集合),对于两个元素共同拥有的元素在取出的那两个元素中分别出现的次数的乘积就是花费 然后再将两个元素删掉,合并成一个元素再放进去 重复上述步骤,直到集合只有一个元素 f(s,a)∗f(t,a)+f(s,b)∗f(t,b)+f(s,c)∗f(t,c)+f(s,d)∗f(t,d)+......原创 2017-09-02 01:09:27 · 406 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) B. Tell Your World(向量积)
向量积判断是否平行#include <bits/stdc++.h>using namespace std;const double eps = 1e-8;const int MAXN = 1010;struct Point{ Point() {} Point(int _x, int _y):x(_x),y(_y) {} int x,y;};Point ps[MAX原创 2017-09-02 01:06:09 · 317 阅读 · 0 评论 -
Codeforces Round #425 (Div. 2) A. Sasha and Sticks
暂时也就停留在这种水两个水题的水平了#include <bits/stdc++.h>using namespace std;typedef long long LL;int main(){ LL n,k; cin >> n >> k; LL temp = n/k; if(temp%2 == 1) cout << "YES" <<endl;原创 2017-07-25 23:05:17 · 189 阅读 · 0 评论 -
Codeforces Round #427 (Div. 2) C. Star sky
水平较水,想了老久,都结束了,才发现数据这么小,打个表预处理下不就好了。然后才想到,表怎么打?真是傻了 去看了看别人怎么打的。。。 光照强度每c+1轮循环一次,c<=10,共循环c+1轮,把每轮的都打出来,然后O(1)查询。。。#include <bits/stdc++.h>using namespace std;struct star{ int x,y,s;};const in原创 2017-08-01 10:42:12 · 278 阅读 · 2 评论 -
Codeforces Round #415 (Div. 2) C. Do you want a date?
有一个集合S={1,2,3,4,5,6},他的一个子集的最大值是4,最小值是1,则这样的子集的个数是2^2,因为最大为4最小为1的集合最大是{1,2,3,4},1,4固定了,剩下的就是{2,3}的子集的个数了,{2,3}有2^2个子集,所以。。。。 假设一个集合,已经从小到大排序好了,则他的子集中最小为num[i],最大为num[j] (i < j) 的集合的个数为2^(j-i-1),即2^k(k原创 2017-05-22 16:23:27 · 329 阅读 · 0 评论 -
Codeforces Round #415 (Div. 2) B. Summer sell-off
贪心。 用结构体保存的struct node{ ll k,l,val;};本来是在输入的时候令val=2*k,然后按照val从大到小排序,按条件选取,在test15那里错了,后来就想啊想,令val=l-k或者val=2*k-k,val就表示商品翻倍那天额外多赚的,然后在按照val从从大到小排序,就过了,之前那种排序方式排在前面的并不一定是额外赚的多的#include <iostream原创 2017-05-22 16:00:39 · 340 阅读 · 0 评论 -
Codeforces Round #415 (Div. 2) A. Straight «A»
这次竟然在夜里两点多才开,熬不到。。。。 暴力水过#include <cstdio>#include <cstring>int n,k;float sum;int mark;bool check(int cnt){ int score = (int)(sum/(cnt+n)+0.5); if(score == k) return true; retu原创 2017-05-22 15:51:20 · 353 阅读 · 0 评论 -
codeforces 813C. The Tag Game
思路:计算出所有点到1号点的最短距离,到x号点的最短距离,然后找到一些这样的点,这个点到x点的距离小于到1号点的距离,然后选出这些点中距离1号点最远的点就是结果。#include <cstdio>#include <cstring>#include <vector>#include <queue>using std::priority_queue;using std::vector;c原创 2017-06-06 18:15:48 · 386 阅读 · 0 评论 -
Codeforces Round #417 (Div. 2) B. Sagheer, the Hausmeister
水题,注意细节。 第三题没看懂题目。明天再看看#include <cstdio>#include <cstring>#include <algorithm>using namespace std;char G[20][110];int n,m;int dp[20][2];void createLR(int &l, int &r, int row){ int i; for原创 2017-06-02 01:27:03 · 372 阅读 · 0 评论 -
Codeforces Round #417 (Div. 2) A. Sagheer and Crossroads
水题,注意细节。#include <iostream>#include <algorithm>using namespace std;int light[4][4];int main(){ for(int i = 0; i < 4; ++i) { for(int j = 0; j < 4; ++j) cin >> light[i][j];原创 2017-06-02 01:18:10 · 294 阅读 · 0 评论 -
Educational Codeforces Round 23 B - Makes And The Product
简单排列组合,又来水了俩水题。。。#include <iostream>#include <map>#include <algorithm>using namespace std;typedef long long ll;map<ll,ll> table;ll n,num;ll C(ll n, ll m){ ll res = 1; for(ll i = 1; i <= m原创 2017-06-16 16:28:02 · 311 阅读 · 0 评论 -
Educational Codeforces Round 23 A - Treasure Hunt
#include <bits/stdc++.h>using namespace std;int main(){ int x1,y1,x2,y2,x,y; cin >> x1 >> y1 >> x2 >> y2; cin >> x >> y; int derx,dery; int flag1 = -1,flag2 = -1; derx = abs(x原创 2017-06-16 16:25:32 · 358 阅读 · 0 评论