
ACM
yp_2013
这个作者很懒,什么都没留下…
展开
-
续 codeforces 613B Skills
传送门:http://codeforces.com/problemset/problem/613/B Tips:元素值大于查找值的第一个元素的位置,如果插入元素大于数组中的全部元素啊,则返回值是last,注意此时的下标越界 如:number 序列 1,2,2,4,upper_bound(2)后返回的是3,即4的位置 lower_bound返回的是大于等于val的第一个元素的位置 本题目中sk原创 2016-01-15 16:27:51 · 430 阅读 · 0 评论 -
续续 Codeforces 613 B Skills
题目传送门:http://codeforces.com/contest/613/problem/B Two pointers的解法,就是喜欢优美的解法和装逼的姿势!! 首先存储的方式逼格就很高,比起之前的那种分着记录每一项高的多! 然后就是双指针法,外层指针指的是后几个满血的,内指针指的是前几个剩余钱能够满足的能力值最小的,因为随着满血的skill增加,内指针必定是要不断减小的,所以完美地O(原创 2016-01-15 19:16:46 · 564 阅读 · 0 评论 -
Codeforces 612D The Union of k-Segments
传送门: http://codeforces.com/contest/612/problem/D 题意:找线段的集合,使得其中包含满足下个性质的点: 点属于至少k条线段 题解:排序,左端点标-1,右端点标1,然后O(2*n)扫描一遍点,开个计数器记录当前点属于多少条线段,然后记录下来所有满足条件的线段左右端点即可 code:#include<bits/stdc++.h>using nam原创 2016-01-15 19:38:51 · 457 阅读 · 0 评论 -
Codeforces 607 D Zuma
题目传送门: http://codeforces.com/contest/607/problem/B 祖玛游戏,区间dp,用记忆化搜索再加上传引用去写逼格更高一些 想清楚终止条件即2个球和1个球时的方案即可code:#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#include<queue原创 2016-01-15 19:46:46 · 489 阅读 · 0 评论 -
Codeforces Round 610
比赛的时候打了3题,由于手残加各种奇葩傻逼错误,最后竟被hack剩1题,立个flag标志一下!!! 题目传送门: http://codeforces.com/problemset/problem/610/A 既然忘记判断筷子是奇数的情况了,一定要注意特判n小以及待处理表达式是否满足的情况,即遇到除以2的时候就一定要想到奇偶的问题int main(){ s(n); if(n<6原创 2016-01-15 20:04:09 · 321 阅读 · 0 评论 -
Codeforces 615 D Multipliers
传送门: http://codeforces.com/problemset/problem/615/D 给出关于n的乘法表达式,算n的所有因子的乘积%mod 就是求出每个质因子在最后乘式中出现的次数,利用dp的思想,pre[i]表示前i个质因子的组合方案数,则分为两种情况,即第i种取还是不取,注意这里指的是多少种组合方案,而不是质因子具体个数,所以取得时候要有n个质因子,则有n种取值方案(1到原创 2016-01-15 21:23:45 · 269 阅读 · 0 评论 -
Good Bye 2015
传送门: http://codeforces.com/contest/611/problem/A 这题刚开始写的时候是硬算的,由于马虎把星期日算错了,其实直接暴力就ok了// Days (A), by Errichto#include<bits/stdc++.h>using namespace std;int t[12] = {31, 29, 31, 30, 31, 30, 31, 31,原创 2016-01-15 21:36:15 · 598 阅读 · 0 评论 -
Codeforces 611C
C: 一个矩阵(500*500),有些障碍点和空格点。 现在可以放一种1*2的骨牌,骨牌只能放在空格点。 问对于(x1,y1,x2,y2)这个矩阵,有多少种合法的放骨牌的方式。很明显的dp[x2][y2] + dp[x1][y1] - dp[x2][y1] - dp[x1][y2]的模式,因为骨牌横竖放置的不一样所以稍微调一下下标就可以。#include <cstdio>#in原创 2016-01-07 20:19:23 · 478 阅读 · 2 评论 -
Codeforces 609 D Gadgets for dollars and pounds
传送门: http://codeforces.com/problemset/problem/609/D 题意: 给出每天的人民币兑换美元和英镑的比率 有m个物品,每个物品所需的美元和英镑是不变的,一共n天,s人民币,问最小天数可以买到k个,如果不能买到k个的话就输出-1! 注意是每个物品只能用dollar or pound 去买,因为下面给了1,和2指的就是编号! 题解:Two poin原创 2016-01-16 10:08:21 · 402 阅读 · 0 评论 -
Good BYe 2015 D New Year and Ancient Prophecy
传送门: http://codeforces.com/contest/611/problem/D题意:把一个数字字符串分割成几个严格无前导0的单调递增的序列,问答案mod(1e9+7) 很明显的dp 以下的个人初始想法完全可以忽略掉~~~ 粗略的想法就是:用dp[i]表示以i结尾,且数字以i结束的方法数,那么转移方程就是 如果i到j这段字符串要比以 j结尾的最大字符串大,的话dp[原创 2016-01-16 16:03:32 · 480 阅读 · 1 评论 -
Codeforces 612 E Square Root of Permutation
http://codeforces.com/problemset/problem/612/E题意: 1 2 3 4 5 4 5 1 2 3 2 3 4 5 1 即 给出第三行让你求第二行我们可以这样去考虑,即每一个排列都是对应着一个图,即把每个i和v[i]连接起来,那么这个图肯定是由若干个环组成的。现在我们把平方之后的环的图画出来,即容易发现这个规律: 1.奇数环还是不变,只是相当于每次的原创 2016-01-16 20:14:35 · 475 阅读 · 0 评论 -
Codeforces 609C Load Balancing
传送门: http://codeforces.com/problemset/problem/609/C题意: 重新分配任务,每次可以选择改变2个人的,问最少花费的时间 想法: 首先肯定总数是不变的吗,最后终态肯定就是前面的是平均数下限,后面几个是平均数下限+1,然后算出增加的和减少的数量的总和再除以2不就ok了么!!! 大sb题,为了凑数量来一发,不过写的时候刚开始居然忘记排序了。。。。。原创 2016-01-16 23:24:11 · 374 阅读 · 0 评论 -
Codeforces 599 D Spongebob and Squares
传送门: http://codeforces.com/problemset/problem/599/D题意: 求出所有的n和m,使得在n*m的矩形里恰有k个不同的正方形和明显的数学公式题嘛!! n*m的矩形中的不同正方形的数量必定可以用公式去表示出来,必定是枚举n,然后可以在O(1)的时间内把m解出来,那么n要枚举到多大呢,1e18,估计是n3次方,那么就枚举到1e6吧 ,且最后答案一定是对称原创 2016-01-16 23:58:35 · 863 阅读 · 0 评论 -
Codeforces 599 C Day at the Beach
传送门: http://codeforces.com/problemset/problem/599/C 题意: 将数字分组排序后,使得局部有序且整体有序 很明显的前缀和问题嘛!! 求最大的划分数!!!!!!! 同样本道题目的终态肯定是确定的,即从小到大的序列,然后只要这段区间内的和是相等的那么就ok了 前缀和匹配一下就好了 !!! 前缀和每相等一次,就表明又多了一个分组!! 大SB原创 2016-01-17 10:11:02 · 466 阅读 · 0 评论 -
Codeforces 599 B Spongebob and Joke
传送门: http://codeforces.com/problemset/problem/599/B 题意: 给出序列f[i]和f[a[i]],要求还原序列a[i]不就是记录一下ans[f[i]]=i,然后再去求ans[f[a[i]]]不就是a[i]了么 那么在具体判断的过程中,肯定是先判断卷是不是 impossible,再判断是不是无穷,最后再记录一下答案不就ok了么 刚开始还在纠结原创 2016-01-17 11:19:39 · 532 阅读 · 0 评论 -
Codeforces 605B Lazy Student
传送门: http://codeforces.com/problemset/problem/605/B题意: 给定m条边的权值和标志位,标志位为1说明其在最小生成树上,然后还原整个图,如果不行的话就输出-1!!!!!!!! 就是喜欢这种构造题目!!!! So easy 的题目嘛,只需要把边按照权值从小到大排序,然后顺着往后加不就可以了嘛,如果不在最小生成树上,就隔着加,为-1的情况就是隔原创 2016-01-17 13:50:36 · 516 阅读 · 1 评论 -
续 Codeforces 605 B
不得不说此题的这种解法比我的逼格高10000倍啊,巧妙地利用过了取反来,用vector排序,而且还迭代器,还auto,而且make_pair的时候也是直接上{},不行不行,思维一定要变通,姿势一定要优美#include<bits/stdc++.h>using namespace std;const int MAX=1e5+9;int n,m,p1=1,p2=2,p3=1;pair<int,i原创 2016-01-17 13:59:47 · 1087 阅读 · 1 评论 -
Codeforces 596 B Wilbur and Array
传送门:http://codeforces.com/contest/596/problem/B 又写了一道sb题, 题意: 每次可以把一个数以及所有它后面的数全部加1或者减1,问把初始全0序列变成目标序列最少需要多少次解法: 首先肯定可以判断出是从前往后扫一遍,然后每次都会使得后面的数是相等的,那么加上差值不就好了么注意要用ll#include<bits/stdc++.h>using na原创 2016-01-17 14:49:54 · 550 阅读 · 0 评论 -
Codeforces 596 C Wilbur and Points
传送门: http://codeforces.com/contest/596/problem/C题意: 给n个点的坐标,然后让你重新排序,规则是x,y坐标均小的要排在前面,规则具体看题即可,使得点的权值w[i]与给出的序列吻合,如果存在该序列则输出,否则输出NO思路: 冥想阶段: 肯定是排序,然后再判断一下给出的这种方案合法否么,粗略的想法就是把w的值从小到大排序,那么点的排序方法必定就是右原创 2016-01-17 17:17:00 · 491 阅读 · 0 评论 -
续续 Codeforces 596 C Wilbur and Points
传送门: http://codeforces.com/contest/596/problem/C附上那份符合我当初屌丝想法的只排序不需要任何数据结构的写法 其实本质思想都是贪心,即先通过排序找到每个w[i]所对应的点号,然后保存下来 具体找法还是贪心去找,即x小优先,否则y小优先!!!!! 然后再O(n)扫一遍去判断合法性就ok了,其实我这个方法也是蛮优美的,因为它只需要把两边都排次序就可以原创 2016-01-17 20:39:22 · 475 阅读 · 1 评论 -
Codeforces 607 A Chain Reaction
传送门 http://codeforces.com/problemset/problem/607/A题意: 给出每个怪物的位置和他向左能攻击的范围闭区间(不包括他本身),从右至左激活,现想在最右边加上一个怪物,使得最后死掉的怪物数量最少!!!!!思路: 这种题目很明显的dp嘛,用dp[i]表示第i个位置能存活的最大怪物数量,从左到右扫描一遍,然后过程中更新一下最大值不就 ok了嘛!!!!!原创 2016-01-17 21:16:34 · 744 阅读 · 2 评论 -
续Codeforces 608 C Chain Reaction
传送门: http://codeforces.com/contest/608/problem/C 这次是二分写法 这样写逼格略低,主要就是dp的方式变了,之前是对位置dp现在是对怪物dp。下标就是怪物了,表示的是到这个怪物,之前死掉了多少怪物(这时候就不应该算上后面的死的怪物了),那么我们就需要查找当前怪物能攻击的最远的位置死了多少个怪物,用二分找到那个位置,dp[位置]就表示的是到那个位置死原创 2016-01-18 08:32:55 · 400 阅读 · 0 评论 -
hdu 5600 N bulbs
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5600 题意: n个灯泡,一个人从左走到右最后离开,每次可以往左右两个相邻的走,没走过一个将开关取反,问最后能不能把所有灯全部关掉并且离开,1为亮,0为灭思维题: 考虑此问题的子问题,从a走到b,回来,再回去并走出去,会发现结果是两边的灯没变,中间全部取反,由于只是0,1序列,那么我们只需要将0两原创 2016-01-18 08:49:11 · 491 阅读 · 0 评论 -
hdu 5601 N*M bulbs
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5601 又变成n*m的矩阵了,思路还是一样的,不过也是很巧妙的方法!!!!!思路: 将格子黑白染色,我们现在需要考虑的是从一种颜色的格子走到另一种颜色的格子带来的中间影响是什么 ? a b c d a->d 显然可以看出我们可以这样走,a b a b d 那么可以得出结论,我们在相同颜色的格原创 2016-01-18 09:07:30 · 574 阅读 · 1 评论 -
hdu 5602 Black Jack
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5602题意: 21点游戏,A当成1,JQK全部当成10点,轮流叫牌,爆点直接判输,假设牌数特别多,且每个人拿到每张牌的概率是一样的!! 一开始二者都有张牌为输入!问最后闲家胜率大于50%的概率!!!!!! 明显的概率dp,用记忆化搜搜去写嘛!!! 两个dfs分别模拟闲家和庄家叫牌时的情况,终止条件原创 2016-01-18 11:31:17 · 679 阅读 · 1 评论 -
hdu 5603 the soldier of love
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5603题意: 有n条线段,m个组,每个组中包含一部分点,求问对于每个组,有多少条线段包含组中至少一个点!!!思路: 很神奇的解法! 一看分组很多且分组里面的点很多,既然总共的点数就是1到1e6,那么很自然的想法肯定就是扫面一遍这1e6个点,然后线性地把答案给算并存下来!首先我们应该反着求,即求不覆原创 2016-01-18 16:10:07 · 679 阅读 · 1 评论 -
hdu 5595 Math
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5595大sb题,暴力就可以过,可是我当时却脑残的写了分类讨论,一直wrong 立个flag!!! 注意最小值可能是负数!!!#include<bits/stdc++.h>using namespace std;int t,a,b,c,l,r;const int inf=0x3f3f3f3f;原创 2016-01-18 16:49:34 · 312 阅读 · 0 评论 -
hdu 5596 GTW likes gt
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5596题意:sb题,有n个怪物,他们会轮流去消灭之前的怪物,每次可以消灭在他之前 另一组的体力值小于他的值得怪物,有m个体力值增加时间,在 c[i]之前的怪物的体力值全部加1,问在n秒之后会有几只怪物存活下来。。。强行模拟,用2个优先队列记录每一组的体力值,有个小转换,因为我们要扫一遍n秒的时间轴,所原创 2016-01-18 19:28:26 · 304 阅读 · 0 评论 -
优先队列一点小用法
此文的目的就是立个flag,帮助我以后忘记了相关用法的时候能够及时地相起来, 注意,这里只能重载<号,并且比较大小的时候是反着的 ,这点只要牢牢地记住就ok啦!!!!!!优先级队列区别于普通队列的一点是:优先级队列如果插入的节点是结构体类型,则要在结构体中重载比较操作符函数。示例代码如下://优先级队列的使用测试//优先级队列跟对列的使用方式的区别是优先级队列在插入元素时//在将元素插入队尾后原创 2016-01-18 19:32:19 · 303 阅读 · 0 评论 -
hdu 5597 GTW likes function
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5597打表找规律的题,因为方法比较经典,所以这里记录一下!!!!由打表找规律得f(x)=x+1 则fn(x)=x+n+1 因此套个欧拉函数的板子就可以了!!!!要注意一下欧拉函数的写法,刚开始还是想错了,确实是根号n的复杂度就可以了,把n质因数分解了,写成那个质因数的表达形式,然后遇到一个质因数,一原创 2016-01-18 20:10:09 · 379 阅读 · 1 评论 -
hdu 5592 ZYB's Premutation
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5592题意: 有一个排列,给出1到i区间的逆序对数,让你还原这个排列!思维题,用线段树做,很显然根据相邻两个数的差,就能得出后一个数的加入又新产生了几个逆序对,那么显然就应该倒着做,可以得出后面的这个数是第k大的,取出当前第k大的数,放到这个位置上就ok了!!线段树维护的是前缀和,具体做法是这样的:原创 2016-01-18 22:14:26 · 439 阅读 · 2 评论 -
续hdu 5592 ZYB's Premutation
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5592 还是之前的那道题,我再来一发线段树的写法!!!!很板子的写法,k号点表示的区间是left到right!! 每次都是搜寻那个前缀和,如果要是在左边区间则去左边找,否则去右边区间找剩余的和!!!! 还有就是注意写线段树一定要return ; !!!!!#include<bits/stdc+原创 2016-01-18 23:05:28 · 401 阅读 · 2 评论 -
hdu 5593 ZYB's Tree
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5593题意: 求出树上距离每个点距离不超过k的点数的异或和!!! 树上两个点的距离定义为两个点再树上的最短距离!! 思路: 首先k很小,最大是10,很容易就想到要开一个二维数组,记录到每个点的距离为i的点数有多少个,如果先只算下面的点距上面的点距离为i的点数的话,那么我们就很容易dp了 dp[原创 2016-01-18 23:46:40 · 457 阅读 · 1 评论 -
Educational Codeforces Round 6
由于比赛当天是考毛概的前一天晚上,所以缺席了。。。。。 传送门: http://codeforces.com/contest/620/problem/C A: 也是蛮邪门的,这次我清楚了fabs和abs的区别,abs是整数,fabs是浮点数,这题用fabs就会出错,输出一堆乱的数字!!!! 而且用fabs加cout还会输出科学计数法表示的问题,简直奇葩,一定要用abs!!!!#includ原创 2016-01-22 20:06:01 · 406 阅读 · 0 评论 -
Codeforces D. Professor GukiZ and Two Arrays
传送门: http://codeforces.com/contest/620/problem/D很sb的一道题,暴力加二分即可以过!! 题意: 两个数列,最多可以交换两次,使得二数列和的差最小。 把求得值得表达式子计算出来就是 sum1-a[i]-sum2+b[i] 然后根据这个式子分项进行计算就可以了 直接暴力模拟一次,和两次的情况即可,两次的时候二分找到临界两个,比下大小就可以了s原创 2016-01-23 00:03:52 · 770 阅读 · 1 评论 -
Codeforces 620 E. New Year Tree
传送门: http://codeforces.com/problemset/problem/620/E 题意: 一个树,给两种操作,第一种是将一个节点下的所有子树染成一种颜色,第二个操作 是输出一个节点下的子树一共有多少种颜色,多次查询。原创 2016-01-23 16:42:23 · 691 阅读 · 0 评论 -
Codeforces 617 C. Watering Flowers
传送门: http://codeforces.com/problemset/problem/617/C sb题,排个序就ok了! 比赛的时候一个是累,一个是有一个人在旁边各种烦,哎,不提了,总是要适应各种环境!!!!!#include<bits/stdc++.h>using namespace std;typedef long long ll;vector<pair<ll,ll>>ans原创 2016-01-24 10:54:58 · 423 阅读 · 0 评论 -
Codeforces 617 D
传送门: http://codeforces.com/contest/617/problem/D shab分类讨论题 2的情况: 根据四个端点(最左最右最上最下)去判断可否三个点均在边界上。。。#include<bits/stdc++.h>using namespace std;const int INF=2e9;pair<int,int>p[3];bool ck(int xx,in原创 2016-01-24 11:52:57 · 515 阅读 · 0 评论 -
hdu 5612 Baby Ming and Matrix games
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5612shab题,暴搜即可,由于一共最大只有15个数,所以可以强行走一条覆盖所有点的路出来,看看情况,再乘上15就ok了!!! 据题解说,当表达式矩阵为5*95∗9的时候,最多有1400个表达式,单组复杂度为O(14000*4),题目有精度误差,最好用分数做!!!!code:#include <ios原创 2016-01-24 12:49:54 · 501 阅读 · 0 评论 -
hdu 5613 Baby Ming and Binary image
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5613题意: 给出相邻9个格子的和矩阵,求原矩阵思路: 根据最上和最下都为0,构造递推方案,根据行数很少,很容易想到状态压缩枚举最左边一侧的值,这样就可以自上到下,自左到右去递推值了,注意判断合法性的方法就ok了,一定是矩阵的每一个点都要判断到,只要不遗漏就ok了!!!(由于每次递推使之满足的是左上原创 2016-01-24 17:45:03 · 508 阅读 · 1 评论