
ACM/ICPC_Codeforences
文章平均质量分 81
just_sort
Acdream.
展开
-
Codeforences B. Island Puzzle
A remote island chain contains n islands, labeled1 through n. Bidirectional bridges connect the islands to form a simple cycle — a bridge connects islands1 and 2, islands 2 and 3, and so on, and原创 2016-03-01 12:50:42 · 572 阅读 · 0 评论 -
Codeforences Round #PI(div2) D. One-Dimensional Battle Ships
Alice and Bob love playing one-dimensional battle ships. They play on the field in the form of a line consisting ofn square cells (that is, on a 1 × n table).At the beginning of the game Ali原创 2016-02-25 15:17:34 · 497 阅读 · 0 评论 -
Codeforences #307(div2) C . GukiZ hates Boxes
题目传送门【题意】m个人要去移动n堆盒子 每堆上有若干个盒子 每个人只能进行两种操作 从一个位置走到下一个位置 如果这个位置上的盒子个数不为0 那么就要把这个位置上的盒子移掉 每种操作需要一秒求这m个人 把盒子全都清掉所花的最少时间.【解题思路】二分所需要的时间 对每个人进行贪心 从最远的地方开始 让每个人在时间范围内移动更多数目的盒子堆数m个原创 2016-01-23 15:22:01 · 447 阅读 · 0 评论 -
Codeforences # 336 B B. Hamming Distance Sum
题目传送门//题意: 给你一个模板串a和匹配串b,|a|<=|b|<=2e5,两个串都是01串。 于是,a串之于b串的匹配位置,就有|b|-|a|+1种 我们想问,对于所有的匹配位置,会产生的匹配差异总和是多少。 所以匹配差异,是指—— 比如模板串是0011,匹配0101,对于所有'0' match '1' 或者'1' match '0 ', 都产生了1的匹配差异。即这个样例产生了2的匹配差原创 2016-01-20 14:52:06 · 556 阅读 · 0 评论 -
Codeforences #339 A. Link/Cut Tree
题目传送门//暴力,有点小坑,不能用pow函数,还有中间注意循环跳出来的条件,不然会在24个test出错//AC代码如下://Created Author: just_sort//Created Time : 2016/1/17//File Name : Link/Cut Tree#include <cstdio>#include <cmath>#include <cstring原创 2016-01-17 17:51:05 · 631 阅读 · 0 评论 -
Codeforences Goodbye 2015 B New Year and Old Property
题目传送门题意:算出 a,b 中 二进制下,含有 且 只含有1个0的数 的数目解题方法:暴力(dfs)#include<bits/stdc++.h>using namespace std;#define ll long longll n,m;ll ans;void dfs(ll x,ll cnt){ if(x>m)return ; if(x>=n&&x<=m&&cnt=原创 2016-01-12 22:14:33 · 609 阅读 · 0 评论 -
Codeforences Goodbye 2015 C. New Year and Domino
题目传送门//"#"代表不能放骨牌的地方,"."是可以放 500*500的矩阵,q次询问//开两个dp数组,a,b,a统计横着放的方案数,b表示竖着放,然后询问时O(1)的,容斥一下, 复杂度O(n^2+q)#include<bits/stdc++.h>using namespace std;char s[505][505];int a[505][505];//统计横着放的数目int b[50原创 2016-01-12 22:08:50 · 620 阅读 · 0 评论 -
Codeforences #309 B (div2)
题目在此【题意】每次清洁一列,这一列里数字都会取反,问最多使得几行变成全为0【解题思路】统计相同的字符串的个数,维护最大值就可以了,原来做过这个题,再次看到有感而发【AC代码】#include using namespace std;char s[105][105];int main(){ int n; cin>>n; for(int i=0; i原创 2016-03-03 19:58:44 · 432 阅读 · 0 评论 -
Codeforences #309 C(div2)
Kyoya Ootori has a bag with n colored balls that are colored withk different colors. The colors are labeled from1 to k. Balls of the same color are indistinguishable. He draws balls from the bag o原创 2016-03-03 21:08:52 · 425 阅读 · 0 评论 -
Codeforences #334 C(div2)
Each month Blake gets the report containing main economic indicators of the company "Blake Technologies". There are n commodities produced by the company. For each of them there is exactly one integ原创 2016-03-05 13:52:15 · 469 阅读 · 0 评论 -
Educational Codeforences Round 9 B
题目门【题意】输入n,代表有n个数,然后再输入n个力量,在输入长度为n的字符串(字符串只包括A或B),Bob 能够选择该字符串的某一前缀或者后缀,或者什么也不做,将其反转(如果是A,则变成B,如果是B 则变成A),最后Bob的力量是所有B对应的力量和。输出最大的力量和!【解题思路】因为是前缀或者后缀,所以直接扫描终点即原创 2016-03-06 22:13:35 · 619 阅读 · 0 评论 -
Codeforences #345 C
Watchmen are in a danger and Doctor Manhattan together with his friend Daniel Dreiberg should warn them as soon as possible. There aren watchmen on a plane, the i-th watchman is located at point (原创 2016-03-08 10:07:17 · 614 阅读 · 0 评论 -
Codefoences Round #302 A (div1)
Programmers working on a large project have just received a task to write exactly m lines of code. There are n programmers working on a project, the i-th of them makes exactly ai bugs in every lin原创 2016-03-11 16:26:23 · 419 阅读 · 0 评论 -
Looksery Cup 2015
Do you like summer? Residents of Berland do. They especially love eating ice cream in the hot summer. So this summer day a large queue ofn Berland residents lined up in front of the ice cream stall.原创 2016-03-12 13:19:52 · 523 阅读 · 0 评论 -
IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) C. Bear and Up-Down
题目【题意】一个序列定义为nice的话,就是这个序列满足阶梯状。就是如果i是偶数,那么ai>ai-1,ai>ai+1如果i是奇数,那么ai现在允许你交换两个数的位置,问你一共有多少种交换方式,使得这个序列变成nice保证一开始的序列不是nice的。【解题思路】我们定义不nice的数就是不满足条件的位置。我们可以大胆猜测原创 2016-03-23 17:16:30 · 686 阅读 · 1 评论 -
Codeforences Educational Round10 C. Foe Pairs
【题意】给了n个数的1个排列,给了m个特殊的二元组,你可以在这n个数里面选出两个数作为一对组合,现在要求选出的这两个数不能包含m对pair的任何一对,求满足这个条件的二元组的个数。【AC代码】#include #include #include using namespace std;#define inf 0x3fffffff#define ll long longint p原创 2016-03-26 14:53:53 · 689 阅读 · 0 评论 -
Educational Codeforces Round 10 D Nested Segments
【题意】给了n条线段的左区间和又区间,问在这n条线段分别被包含了多少次。【解题思路】这个题我开始不会的,听队友讲解之后会了。首先对所有的线段按照x从小到大来进行排序,如果x相等就按照y来从大到小排序,然后从最后一条线段到第一条线段进行更新,排序之后按照存y的pos数组进行查找,因为这里x已经有序了。然后树状数组,维护了没一个y被覆盖了几次,查找到之后更新即可,orz。【AC代码】#in原创 2016-03-27 11:25:58 · 366 阅读 · 0 评论 -
Codeforences Educational Round 11
【题目链接】点击打开链接【题意】给了n,k,已经一个长度为n的01序列,问你在最多进行k此操作,(操作是把0变成1),能得到最大的连续1的长度。【分析】维护0的前缀和,对每个以i点开头的字串,二分查找能到达的最大位置,维护最大的答案。【AC代码】#include using namespace std;int a[300005],dp[300005];bool vis[3原创 2016-04-09 13:19:39 · 313 阅读 · 0 评论 -
BestCoder Round #77 (div2) C
【题意】bc中文题,题意自己看啦!!!【解题思路】 这是一个连通性的问题。你会发现如果将所有操作逆序来看的话就很容易用并查集来处理了。首先把所有的山峰都加到图中,然后逆序处理每个操作:对某次操作,在图中删除该位置的山峰,然后判断两个点是否联通,一旦联通就得到了结果。这里需要对China和India分别新建一个对应的节点。【AC代码】#include #include #includ原创 2016-03-28 18:55:19 · 452 阅读 · 0 评论 -
Codeforces Round #352 (Div. 2) C. Recycling Bottles
【题意】有两个人A,B在一个二维平面上捡瓶子放到垃圾箱里,每个人从从初始位置出发,一次只能选择一个瓶子去捡,然后去垃圾箱,再去捡瓶子。。。也可以中途不捡了,给出A,B,垃圾箱和n个瓶子的坐标,求两个人捡完瓶子要的最短距离。【分析】把距离都求出来,再贪心找到最小距离就好了【Trick】见代码吧。【AC代码】#include using namespace std;const原创 2016-05-12 12:42:34 · 393 阅读 · 0 评论 -
Codeforences Round #349 (div2)
【题意】给你一个字符串,然后删去前五个字符后剩下的部分能划分出几种单词来,单词的长度只能为2 or 3,注意一种划分方案中不允许出现两个连续相等的单词,很容易想到我们可以按位置枚举这些单词,然后需要用DP判断这个单词能不能被划分出来。【分析】这里我看了本次比赛第一名的方法,确实有被惊艳到!简直就是set大暴力呀,代码相对于其他也显得很简单!【AC代码】#include using n原创 2016-05-01 21:04:51 · 321 阅读 · 0 评论 -
CodeForces 669D Little Artem and Dance
【题意】给你n个数,一开始是1 2 3 4 5 6 这样的,现在有两个操作,第一个操作是所有数向右边移动x个位置,第二个操作奇数和偶数的位置互换思路:比较显然就是,奇数和偶数位置的数的相对位置是不会变的,那么我们只要知道1和2这两个位置的数是啥就好了然后交换的时候,我们就模拟一下这两个位置的交换就好了【AC代码】#include using namespace std;int原创 2016-05-01 21:44:18 · 384 阅读 · 0 评论 -
Codeforces Round #352 (Div. 2) D. Robin Hood
【题意】给你n个数,k个操作,每次操作把最大的减一,最小的加上一,直到最大的减一变成最小的,那么再把这个减掉的1加回去。【分析&解题思路】orz队友!!!这题其实就是个赤果果的模拟呀。考虑求最大值的时候,我们考虑从右边切,求最小值的时候考虑从左边切。这样切出来之后,必然就是左边低右边高的情况合法。那么左边右边高呢,其实这里只用判断sum%n是否为0即可,如果为0值为0,否则为1。【AC代码原创 2016-05-12 19:57:51 · 414 阅读 · 0 评论 -
Educational Codeforces Round 11 C (Two Pointers)
【题外话】我曾经用dp+二分写过这道题,当时是100多ms,今天了解到了two pointers这个东西,用two pointers的方法过了这道题!【题意】这道题的意思是给了一个只包含0,1的这样一个串,然后一个数k,最多讲k个0变成1,问你可能得到的最大的1的连续区间长度,并且输出改变后的数组!由于0的个数,从前导后具有单调性,因此,我们可以采用two pointers这种方法!事实证明,原创 2016-04-18 18:23:43 · 615 阅读 · 0 评论 -
Codeforces Round #347 (Div. 2) B
【题意】给一个式子,让你选[1,n]中间的数把问号替换掉,使这个式子成立;【分析】贪心乱搞!【AC代码】#include #include #include #include #include #include using namespace std;const int maxn = 10010;char s[maxn];int answer[maxn];strin原创 2016-04-19 10:27:45 · 313 阅读 · 0 评论 -
Codeforces Round #347 (Div. 2) C
【题意】略~【分析】贪心,确定大致范围,然后超过这个范围的第一个数就是答案!!!【AC代码】#include #include #include #include #include #include using namespace std;const int maxn = 100;char s[maxn];int main(){ //scanf("%s",s原创 2016-04-19 11:09:46 · 406 阅读 · 0 评论 -
Codeforces Round #354 (Div. 2) D. Theseus and labyrinth
【题链接】点击打开链接【题意】一个迷宫,每个位置都有一个字符,除了*(这个代表墙,不能通过)其他的字符都代表了一种性质,在这种字符上下一步能走到哪些方向。然后还有一种操作是花费1s的时间来旋转这个矩阵(旋转90度)!让矩阵里面的每个字符旋转到对应的字符。然后给出了一个人的初始位置和目的地位置,问你这个人能不能走到目的位置,如果能,输出走到目的位置的最短时间。如果不能的话,输出-1.原创 2016-05-26 16:52:43 · 507 阅读 · 0 评论 -
2016"百度之星" - 资格赛(Astar Round1) C
Problem Description度熊手上有一本神奇的字典,你可以在它里面做如下三个操作:1、insert : 往神奇字典中插入一个单词2、delete: 在神奇字典中删除所有前缀等于给定字符串的单词3、search: 查询是否在神奇字典中有一个字符串的前缀等于给定的字符串Input这里仅有一组测试数据。第一行输入一个正整数N(1≤N≤100000原创 2016-05-14 16:28:49 · 715 阅读 · 0 评论 -
Codeforces Round #353 (Div. 2) A,B,C,D
【A】【题意】给了你a,b,c,现在这个数列第一项是a,公差是c,问你有没有可能这个数列中有一项为b?水题,分类讨论一下即可。int main(){ int a,b,c; while(scanf("%d%d%d",&a,&b,&c)){ if(c==0){ if(a==b){ puts("YES");原创 2016-05-17 11:41:26 · 653 阅读 · 0 评论 -
Codeforces Round #350 (Div. 2) (二分答案)
【题意】给了n个物品和k,a[i]表示做成第i个物品需要的材料,b[i]表示当前第i种物品的材料重量。k代表可以在任意一种物品,或者多个添加该种物品的不定重量,最后求可以合成的最多的物品数。【分析】裸二分答案,就是数据范围有点坑,还要注意二分的姿势,二分最近总是写错,以前还没有错过。【AC代码】#include using namespace std;#define ll long原创 2016-05-06 17:28:02 · 480 阅读 · 0 评论 -
Codeforces Round #350 (Div. 2) E (跳转链表)
【题意】一个括号序列,你有以下三种操作:"L"光标左移;"R"光标右移;"D"删掉这个括号以及和它对应的括号之间的所有括号,并且把光标移动到被删后右边的那个括号上。如果没有了,就移动到串的末尾。现在给你原括号序列和操作,求最终结果!【分析】由于操作最多有50万个,那么简单想一下用链表来暴力模拟都是能过得去的。那么,我在这里用了类似于跳转链表来模拟这个过程!但是这里我并不是一个一个的跳转的,而是原创 2016-05-06 23:21:04 · 2630 阅读 · 0 评论 -
Codeforences #351 VK CUP
【A. Bear and Game:】【题意】给这么多时间点,这些时间点是interesting的点,如果连续15分钟不出现interesting的点的话,就要换了;问最长能看多上时间【分析】直接模拟一下即可。【AC代码】#include using namespace std;int a[100];int main(){ int n; while(~scan原创 2016-05-08 20:36:47 · 543 阅读 · 0 评论 -
VK Cup 2016 - Round 1 (Div. 2 Edition) C. Bear and Forgotten Tree 3
【题意】给一棵树的节点数目n,直径d,最大深度h,问是否存在一棵树满足这些条件,存在的话任意输出一棵树。【分析】这题就是贪心了,可以这样搞:两种情况不存在树,一种是d>2*h,一种是d==1&&h==1&&n>2时;可以先生成最大深度的一条链,再在次基础上把最大直径的链生成;其余的都和最大深度的节点的父节点相连接就满足要求了。还要注意代码的具体细节,注意讨论d和h的大小,分情况输出答案。原创 2016-05-09 19:30:50 · 400 阅读 · 0 评论 -
Codeforces Round #299 (Div. 2) C. Tavas and Karafs
【题意】这题看了好久好久!其实就是个二分水题!首先给出a,b,n这是一个由a开头,b为公差,长度无限的等差数列然后n个询问输入l,t,m取这个数列从l开始,m个数,每一次这个数列中所有的数字-1当首尾变成0的时候,可以向后移,问最后t次之后,最长的0序列的右边界是多少那么我们首先可以确定,对于这个最终的序列而言,假设右边界为r那么max(h1,h2,...hr)原创 2016-05-09 21:02:15 · 475 阅读 · 0 评论 -
Codeforces Round #298 (Div. 2) C Polycarpus' Dice
【题目】点击打开链接【题意】输入n,A,一共有n个色子,他们向上的点数和为A,然后给出n个数,分别代表每个色子最大的掷出点数,要求出每个色子有几个值是不可能掷出的。【解题思路】对于一个色子,我们先求出其他色子能掷出的最大值与最小值之和,那么我们就能得到这个色子所可能掷出的区间,然后就得到了不能掷出的个数。【AC代码】#include using namespace std;原创 2016-06-24 22:48:10 · 492 阅读 · 0 评论 -
Codeforences #297 div2 (A,B,C,D,E)
【A题目链接】点击打开链接【题意】给了一个数n,和2*n-2个字符组成的字符串,其中奇数位置的字符是小写,偶数为大写。如果小写字符和大写字符是匹配的,那么就可以成功开门,问你要从1走到n,至少需要带多少把钥匙才能顺利开门。【解题思路】贪心即可。把走到当前位置没用到的钥匙用一个数组hash下来然后判断一下即可。【AC代码】#include using namespace std;原创 2016-06-26 20:09:43 · 728 阅读 · 0 评论 -
Codeforces Round #356 (Div. 2) D.
【题目】Limak is a little polar bear. He plays by building towers from blocks. Every block is a cube with positive integer length of side. Limak has infinitely many blocks of each side length.A bl原创 2016-06-10 13:26:55 · 455 阅读 · 0 评论 -
Codeforces Round #364 (Div. 1) B.Connecting Universities
【题目链接】点击打开链接【题意】有n个城市,其中2*k个里面有大学,并且给出了一些链接关系。现在问把这2*k个点分成k对之后的最大距离和。【解题方法】其实就是把这2*k个点看成树,求这个树的重心,然后求这个重心到所有2*k个点的距离之和就行了。【题外话】树的重心的求取可以参考这个Blog点击打开链接【我的树的重心模板】//求树的重心void dfs2(int u,int原创 2016-07-23 10:18:58 · 476 阅读 · 0 评论 -
Codeforces Round #271 (Div. 2) F Ant colony
【题意】 给了n个数,然后给了m个查询,每个查询有个左区间l和右区间r。在这个区间里求出每一个数能别其他多少个数整除。如果,这个个数是r-l这个数就会被删除,要求个各区间里面不被删除的数的个数!【解题方法】 如果区间[l,r]内所有数的gcd!=该区间内最小的数minv,则对于区间内的每个数都至少有一个数不是其倍数,那么每个数的v值都不可能等于r-原创 2016-07-17 16:05:03 · 324 阅读 · 0 评论 -
Codeforces Round #361 (Div. 2) A,B,C
【ps】最近真的状态低迷啊,是该改变一下懒散的性格了。来写一下昨天晚上这场cf的题解吧,只有idiv2的A,B,C。【A. Mike and Cellphone】【题目链接】点击打开链接【解题思路】水题,只需要判断给的字符串映射到键盘矩阵里面上下左右平移之后是否合法即可。【我的AC代码】#include #include #include using namespac原创 2016-07-07 13:36:32 · 445 阅读 · 0 评论