10 2017 档案

摘要:P1025 数的划分f[i][j]表示把数i分成j份的方案数,分成两种情况,第一种是最小值是1,另一种是最小值不是1,对于不是1的情况,先都放一个1,那么f[i][j]=f[i-1][j-1]+f[i-j][j].初始化f[i][i]=1 阅读全文
posted @ 2017-10-30 16:46 WeiAR 阅读(166) 评论(0) 推荐(0) 编辑
摘要:P1020 导弹拦截打的最多是最长不下降,最少是最长上升,因为打了小的一个就必须再开一个系统。 阅读全文
posted @ 2017-10-30 16:33 WeiAR 阅读(159) 评论(0) 推荐(0) 编辑
摘要:P1007 独木桥最少的话是同时朝一个方向,最多可以这样考虑,碰头时不是转向吗?它等价于穿过另一个人,也就是两个人交换,最后取最大值就好了。 阅读全文
posted @ 2017-10-30 15:38 WeiAR 阅读(100) 评论(0) 推荐(0) 编辑
摘要:x,y在二维里,横纵坐标容易反,有关处理要小心。 阅读全文
posted @ 2017-10-29 22:48 WeiAR 阅读(153) 评论(0) 推荐(0) 编辑
摘要:mapmap虽然好用,但是,尽量不要用,它的常数很大。二分查找可以代替单调的bool map,栽了200分。 阅读全文
posted @ 2017-10-29 21:26 WeiAR 阅读(90) 评论(0) 推荐(0) 编辑
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #define inf 2147483647 12 #define For(i,a,b) for(register int i=a;i'9') 23 ... 阅读全文
posted @ 2017-10-29 19:18 WeiAR 阅读(600) 评论(0) 推荐(0) 编辑
摘要:P2031 脑力达人之分割字串字符串dp,f[i]表示主串到第i个字符,最多能分割成多少子串。f[i]=max(f[i],f[k]+1);k是能匹配到的前一位。 阅读全文
posted @ 2017-10-29 09:50 WeiAR 阅读(222) 评论(0) 推荐(0) 编辑
摘要:对背包的新理解刚才做个一个贪心题,特别像多重背包,如果物品的价值都变成了1,就成了贪心。因为花少的代价得到的价值是1,花多的代价也是1,就是贪心。而且这题数据范围在long long,多重背包(二进制拆分)显然是跑不出来的,虽然这么做是正确的。 P2983 [USACO10FEB]购买巧克力Choc 阅读全文
posted @ 2017-10-29 08:06 WeiAR 阅读(117) 评论(0) 推荐(0) 编辑
摘要:方案数背包当凑面值为0时,有且只有一种方案,初始化,f[0]=1 阅读全文
posted @ 2017-10-28 21:05 WeiAR 阅读(195) 评论(0) 推荐(0) 编辑
摘要:多重背包多重背包是做num遍01背包。 阅读全文
posted @ 2017-10-28 20:22 WeiAR 阅读(116) 评论(0) 推荐(0) 编辑
摘要:关于初始化如果题目涉及负数,一定要注意读入优化开负数,初始化为-inf,边界问题也要初始化为-inf。 阅读全文
posted @ 2017-10-28 19:21 WeiAR 阅读(111) 评论(0) 推荐(0) 编辑
摘要:P1510 精卫填海二分答案二分背包容量,判断能否满足v。判断的话就跑01背包就好了。 阅读全文
posted @ 2017-10-28 17:56 WeiAR 阅读(254) 评论(0) 推荐(0) 编辑
摘要:分解质因数只需要线筛n^0.5就可以了,大于n^0.5的质数最多有一个,剩下的数大于1,那么它就是那个大质数。 完全没有必要线筛,直接从1~sqrt(n)扫一遍就可以了,最后再处理一个大于sqrt(n)的质数。 阅读全文
posted @ 2017-10-28 11:40 WeiAR 阅读(138) 评论(0) 推荐(0) 编辑
摘要:P2648 赚钱对于不知道起点在哪里的最短路,先建立一个超级源点,然后从超级源点跑最长路,并判正环即可。 阅读全文
posted @ 2017-10-27 21:34 WeiAR 阅读(207) 评论(0) 推荐(0) 编辑
摘要:P1593 因子和新算法:#define ni 逆元先质因数分解,(1+p1^1+p1^2...p1^x)*(1+p2^1+p2^2...p2^x)然后套等比数列公式就可以了。 阅读全文
posted @ 2017-10-27 19:39 WeiAR 阅读(337) 评论(0) 推荐(0) 编辑
摘要:P2376 [USACO09OCT]津贴Allowance一开始想的是多重背包,但是实践不了。实际是贪心,让多c尽可能少,所以先放大的,最后让小的来弥补。 阅读全文
posted @ 2017-10-27 15:32 WeiAR 阅读(193) 评论(0) 推荐(0) 编辑
摘要:P1799 数列_NOI导刊2010提高(06)f[i][j]表示前i个数删去j个数得到的最大价值。if(i-j==x) f[i][j]=max(f[i][j],f[i-1][j]+1); else f[i][j]=max(f[i][j],f[i-1][j]); f[i][j]=max(f[i-1] 阅读全文
posted @ 2017-10-27 11:13 WeiAR 阅读(154) 评论(0) 推荐(0) 编辑
摘要:P2789 直线交点数分成两种情况,一种是平行直线,一种是自由直线,在自由直线中可以存在平行直线,但是不能和第一组的直线平行。自由直线和平行直线的交点是i*(n-i)。 阅读全文
posted @ 2017-10-26 21:15 WeiAR 阅读(340) 评论(0) 推荐(0) 编辑
摘要:P1939【模板】矩阵加速(数列)难受就难受在a[i-3],这样的话让k=3就好了。 阅读全文
posted @ 2017-10-26 20:15 WeiAR 阅读(239) 评论(0) 推荐(0) 编辑
摘要:P1356 数列的整数性打的骗分,在多组数据的情况下还能骗到分,可以了。又TMD是dp。f[i][j]表示+-第i个数能否达到%p后的余数j,如果f[n][0]==true就可以。 阅读全文
posted @ 2017-10-26 18:01 WeiAR 阅读(266) 评论(0) 推荐(0) 编辑
摘要:P1962 斐波那契数列矩阵加速 阅读全文
posted @ 2017-10-26 17:02 WeiAR 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2017-10-26 15:38 WeiAR 阅读(131) 评论(0) 推荐(0) 编辑
摘要:P3147 [USACO16OPEN]262144一道非常有趣的游戏,不,题目。当数据水时,可以这样表示状态。f[i][j]表示合并[i,j]区间所能得到的最大值,有点floyed的小味道。if(f[i][k]==f[k+1][j])f[i][j]=max(f[i][k]+1,f[i][j]);不断 阅读全文
posted @ 2017-10-25 23:03 WeiAR 阅读(279) 评论(0) 推荐(0) 编辑
摘要:P1279 字串距离一看就是字符串dp,然而并不会,骗分之后爆零了。以后dp题要好好想想转移方程。f[i][j]表示是a串选了前i个字符,b串选了前j个字符的距离。显然(QAQ)f[i][j]=min(min(f[i-1][j]+k,f[i][j-1]+k),f[i-1][j-1]+abs(a[i] 阅读全文
posted @ 2017-10-25 17:54 WeiAR 阅读(197) 评论(0) 推荐(0) 编辑
摘要:P2326 AKN’s PPAP比较裸的贪心从高位向下枚举,如果当前位为1的个数大于1,ans+=(1<<i),然后从这些数中再向下枚举。 阅读全文
posted @ 2017-10-25 16:24 WeiAR 阅读(372) 评论(0) 推荐(0) 编辑
摘要:P1347 排序floyed判环,水过。 阅读全文
posted @ 2017-10-25 09:09 WeiAR 阅读(257) 评论(0) 推荐(0) 编辑
摘要:【智力大冲浪】riddle内存限制: 128M【题目描述】例 1 智力大冲浪(riddle.pas)。【题目描述】小伟报名参加中央电视台的智力大冲浪节目。本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者 m 元。先不要太高兴!因为这些钱还不一定都是你的。接下来主持人宣布了比赛规 阅读全文
posted @ 2017-10-24 11:47 WeiAR 阅读(559) 评论(0) 推荐(0) 编辑
摘要:猫猫的小鱼catfish内存限制: 64M猫猫是丛林里很多动物心中的天使,她为此十分自豪。猫猫最爱吃鱼了,她每天都要去池塘钓鱼吃。猫猫经常吃鱼脑,数学特别强,然而,小女生的性格决定了她的贪玩。一天,猫猫钓到了很多条鱼。她并不想马上就把可怜的鱼儿吃掉,而是先折磨够之后再吃(有句话叫什么来着~最毒不过猫 阅读全文
posted @ 2017-10-24 11:44 WeiAR 阅读(477) 评论(0) 推荐(0) 编辑
摘要:P1590 失踪的7进制转换的题目,如果把一个10进制的数当成9进制,相当于没有9这个数字,题目失踪了7,但是无所谓。如果当前的大于7,它就跳过了一个数字,向左移动1位。 阅读全文
posted @ 2017-10-24 07:49 WeiAR 阅读(486) 评论(0) 推荐(0) 编辑
摘要:P3420 [POI2005]SKA-Piggy Banks套路题,a通过某种关系和其他的点建立关系。这种题不是环(dfs就可以了),就是并查集找连通块。这种题要建图,画图,就很清楚了。 阅读全文
posted @ 2017-10-23 19:06 WeiAR 阅读(178) 评论(0) 推荐(0) 编辑
摘要:P3917 异或序列暴力前缀异或枚举每一个区间,再求和,60分。正解:按每一位来做对于区间[l,r],如果它对答案有贡献,区间中1的个数一定是奇数,可以按每一位取(1<<i)的前缀和,q[r]-q[l-1]一定是奇数,那只要保证端点值奇偶性不同即可。根据乘法原理,奇数*偶数就是满足条件的区间个数,这 阅读全文
posted @ 2017-10-23 15:40 WeiAR 阅读(313) 评论(0) 推荐(0) 编辑
摘要:P3719 [AHOI2017初中组]rexp一开始想的是类似计算式子的值的东西,用栈。然后发现处理最大值很麻烦,因为处理的很像子过程,所以考虑递归来做。碰到'('就递归一次,碰到'|'就取最大值再递归一次。 if(a=='(') { sum+=work(0); }要在 if(a==')') { r 阅读全文
posted @ 2017-10-23 12:01 WeiAR 阅读(450) 评论(0) 推荐(1) 编辑
摘要:P2246 SAC#1 - Hello World(升级版)典型的字符串dpf[i][j]表示a串匹配到i,b串匹配到j的方案数。if(a[i]==b[j])f[i][j]=f[i-1][j-1]+f[i-1][j];if(a[i]!=b[j])f[i][j]=f[i-1][j];显然可以用滚动数组 阅读全文
posted @ 2017-10-23 10:55 WeiAR 阅读(161) 评论(0) 推荐(0) 编辑
摘要:P2399 non hates math将分数化成小数的模拟题,把循环减掉就可以了。1.1(234)*10^4==11234.234*10^1==11.2349999*(1.1(234))==11223所以(1.1(234))==11223/9999 阅读全文
posted @ 2017-10-23 08:23 WeiAR 阅读(129) 评论(0) 推荐(0) 编辑
摘要:P3819 松江1843路sigema(r[i]*abs(x[i]-x[s]));令它最小,是带权中位数问题,s是带权中位数,s左边的r[i]之和+r[s]大于s左边的r[i]之和,反过来也成立。如果sum+r[i]>=总数/2,就break,就找到带权中位数了。 证明的话去百度,很好证明,因为没有 阅读全文
posted @ 2017-10-22 14:42 WeiAR 阅读(290) 评论(0) 推荐(0) 编辑
摘要:P1862输油管道问题. . . . . . . . . . .图像大体是这样,是带权平均数问题,设答案是k,sigama(abs(yi-k*wi))最小,这里的wi是1而已,问题就退化成了中位数。按纵坐标排序,求中位数即可。 阅读全文
posted @ 2017-10-22 11:26 WeiAR 阅读(154) 评论(0) 推荐(0) 编辑
摘要:P2393 yyy loves Maths IIlong double比如保留5位小数*1000000都变成整数最后再/1000000避免精度误差scanf("%Lf",&x);printf("%.Lf",x); 阅读全文
posted @ 2017-10-21 08:30 WeiAR 阅读(255) 评论(0) 推荐(0) 编辑
摘要:P1292 倒酒这个题有很多模型,这个是一个变形。我令一个解为x两个整数Pa和Pb,分别表示从体积为a ml的酒杯中倒出酒的次数和将酒倒入体积为b ml的酒杯中的次数(酒杯一开始为空)。b最后是0,所有倒入b中的都会倒入a中,而每次a倒出都是从满的状态倒出来,所以剩下的x=Pb*b-Pa*a。 因为 阅读全文
posted @ 2017-10-20 21:48 WeiAR 阅读(862) 评论(0) 推荐(1) 编辑
摘要:P1562 还是N皇后原来,就会位运算搞八皇后,当复习一下。可行的位置是1,其他是0比如11011到下一行的时候,对应的左斜线和右斜线要移一位 阅读全文
posted @ 2017-10-20 16:53 WeiAR 阅读(488) 评论(0) 推荐(0) 编辑
摘要:mapmap是不定长数组;map<int,bool>m;map<long long,int>m;map<const char*,double>m;->m["apple"]=6.66;类型都可以变 阅读全文
posted @ 2017-10-20 11:51 WeiAR 阅读(153) 评论(0) 推荐(0) 编辑
摘要:setset<int>s;s.count(a);判断是否在集合里s.insert(a);插入a 阅读全文
posted @ 2017-10-20 11:47 WeiAR 阅读(87) 评论(0) 推荐(0) 编辑
摘要:P2429 制杖题这个题用线性筛会WA一个点,因为这个题是给定的质数集,最大的质数会比当前的倍数大,就会出现上面的情况。怎办?判重用set啊!set+线性筛就过掉了。16ms 阅读全文
posted @ 2017-10-20 11:44 WeiAR 阅读(412) 评论(0) 推荐(1) 编辑
摘要:对线性筛的新理解除了最小质数的原因外,还有一方面,就是当前的枚举的倍数一定比筛出来的质数小,这是排除了哪种情况呢?倍数 质数2 13倍数 质数13 2 阅读全文
posted @ 2017-10-20 11:21 WeiAR 阅读(128) 评论(0) 推荐(0) 编辑
摘要:P2817 宋荣子的城堡一道找规律的题,现在深入追究发现了有趣的东西。1 12 23 94 64显然k^(k-1) 在日照的时候也推出来了。3 9今天推错了,要列出所有的情况,然后再选,否则会漏掉。答案是(k^(k-1)) * ((n-k)^(n-k))对了,我卡速米一直打的是错的。要对指数为0的情 阅读全文
posted @ 2017-10-19 21:10 WeiAR 阅读(180) 评论(0) 推荐(0) 编辑
摘要:P2651 添加括号III无论怎么添加,a2一定是分母,其他的可以是分子,所以最后看看,(a1*a3*..*an)%a2==0即可 1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 #include<algorithm> 5 #i 阅读全文
posted @ 2017-10-19 16:55 WeiAR 阅读(240) 评论(0) 推荐(0) 编辑
摘要:P2858 [USACO06FEB]奶牛零食Treats for the Cows区间dp,级像矩阵取数, f[i][i+l]=max(f[i+1][i+l]+a[i]*(m-l),f[i][i+l-1]+a[i+l]*(m-l)); 1 #include<iostream> 2 #include< 阅读全文
posted @ 2017-10-19 15:16 WeiAR 阅读(189) 评论(0) 推荐(0) 编辑
摘要:P1005 矩阵取数游戏区间dp,憨贪心可以过两个点,f[l][r]表示l,r这一段都选完的取得的最大得分f[l][r]=max(f[1+l][r]+a[l],f[l][r-1]+a[r])*2越靠中间,乘的2越多,枚举区间长度,和左右端点答案是f[1][m] 1 #include<iostream 阅读全文
posted @ 2017-10-19 15:10 WeiAR 阅读(168) 评论(0) 推荐(0) 编辑
摘要:最大连续子段和sum表示以当前数a[i]结尾的最大子段和,如果sum<0,那么它对后面就没有积极作用,不如抛弃。所以sum+=a[i]维护最大值sum=max(sum,0) 1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 #in 阅读全文
posted @ 2017-10-19 08:52 WeiAR 阅读(154) 评论(0) 推荐(0) 编辑
摘要:P1244 青蛙过河NOI2000主要思想:数学归纳法 递推 压位高精度 化归 理解能力和找规律的能力题意再述:1.青蛙从上到下必须连续递增或者下面是石墩 而不能是1 12 33 4而且每时每刻都要满足这个条件2.左岸和右岸都是石堆公式推导过程:k=0h=0 s=1h=1 s=2 _ _ _h=2 阅读全文
posted @ 2017-10-19 08:00 WeiAR 阅读(208) 评论(0) 推荐(0) 编辑
摘要:P2837 晚餐队列安排对程序有新的理解难度:读懂题&&准确地从题中提取有效信息>设计算法>代码实践mmp,我看错题啦。前缀和&&枚举断点即可 1 #include<queue> 2 #include<algorithm> 3 #include<cmath> 4 #include<ctime> 5 阅读全文
posted @ 2017-10-18 21:09 WeiAR 阅读(242) 评论(0) 推荐(0) 编辑
摘要:P2690 接苹果f[i][j][k]表示i=1或2,表示j时刻cow在哪棵树下j表示时刻k表示转移了k次如果当前第1棵树落苹果f[1][t][left]=max(f[1][t-1][left],f[2][t-1][left-1])+1;如果当前第2棵树落苹果f[2][t][left]=max(f[ 阅读全文
posted @ 2017-10-18 20:49 WeiAR 阅读(211) 评论(0) 推荐(0) 编辑
摘要:[USACO08FEB]修路Making the Grade比较难的dp,比赛时打的找LIS,然后其他的尽可能靠近,40分。先举个例子61 2 3 1 4 561 2 3 3 4 5第4个1要么改成3,要么改成4,反正是数列中的数。所以最优情况下,答案中的数都是原数列中有的。b[]是a[]由小到大排 阅读全文
posted @ 2017-10-18 18:00 WeiAR 阅读(348) 评论(2) 推荐(0) 编辑
摘要:P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold我比赛的时候A了,luogu上25分,QAQ,又憨又傻的200+代码,我为什么要干电脑干的事情,无语了。如果左边<右边,取左如果右边<左边,取右如果相等,就向中间找,直到找到第一个不同的,然后给电脑指明下一步是取 阅读全文
posted @ 2017-10-18 17:44 WeiAR 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2017-10-17 23:36 WeiAR 阅读(115) 评论(0) 推荐(0) 编辑
摘要:线性求逆元1.这是求1~ni的逆元为i^(-1) (mod p)我令p=k*i+r,0<i<p,r<ip=0(mod p)k*i+r=0(mod p)两边同时乘(i^(-1))*(r^(-1)),然后移项i^(-1)=-k*r^(-1)(mod p)i^(-1)=-(p/i)*(p%i)^(-1)( 阅读全文
posted @ 2017-10-17 21:44 WeiAR 阅读(606) 评论(0) 推荐(0) 编辑
摘要:catalan数的新理解h[5]==h[4][0]+h[3][1]+h[2][2]+h[1][3]+h[0][4];对于这种递推式就是catalan数 阅读全文
posted @ 2017-10-17 20:57 WeiAR 阅读(148) 评论(0) 推荐(0) 编辑
摘要:P1375 小猫(二飞的小憨猫)连两个点,就把一个多边形,分成了两部分,这两部分的点一定得是偶数,这样就可以递推啦,比如h[5]==h[4][0]+h[3][1]+h[2][2]+h[1][3]+h[0][4]; 阅读全文
posted @ 2017-10-17 20:56 WeiAR 阅读(206) 评论(0) 推荐(0) 编辑
摘要:P2719 搞笑世界杯我觉得这个难度是假的,如果不知道这个是dp我就做不出来,好吧,知道我也没做出来。。f[i][j]表示剩i张A票,j张B票时,最后两张票相同的概率。当前的队首有一半的概率选A,一半的概率选B,so f[i][j]=0.5*f[i-1][j]+0.5*f[i][j-1]答案为f[n 阅读全文
posted @ 2017-10-17 20:22 WeiAR 阅读(164) 评论(0) 推荐(0) 编辑
摘要:记录一种奇怪的感觉我一开始一点思路都没有,然后好像可以做,然后没有任何验证,打了一种十分高效的算法,发现一个地方处理不了,然后暴力吧,n==10000的话O(n^2)应该过不了吧,然后这样处理应该不对吧,然后样例过了,过了就交吧,估计会被卡吧,然后等着吧,然后A了。。。。。。。。。。。。。。 阅读全文
posted @ 2017-10-17 19:14 WeiAR 阅读(106) 评论(0) 推荐(0) 编辑
摘要:P1757 通天之分组背包背包中的经典问题,我竟然不知道。分组背包就是每个物品有一个所属的小组,小组内的物品会冲突。就是把01背包中的两个for换一下位置01:for(i,1,kind) for(j,v,w[i])分组背包 for(j,v,w[i]) for(i,1,kind) 1 #include 阅读全文
posted @ 2017-10-17 17:44 WeiAR 阅读(286) 评论(0) 推荐(0) 编辑
摘要:P3402 最长公共子序列经典问题LCS-->LIS 没有重复的值才可以这么做把第一数列转化成1~n,然后将第二个数列映射成1~n中的一些数,然后求第二个数列的LIS即可,然后用Bit求LIS,O(nlogN) //数据太大,考虑map #include<iostream> #include<cst 阅读全文
posted @ 2017-10-17 16:30 WeiAR 阅读(243) 评论(0) 推荐(0) 编辑
摘要:树状数组解决LIS O(nlogn)之前写过二分查找的LIS,现在不怎么记得了,正好用Bit来搞一波。f[i]表示以a[i]结尾的LIS的长度。t[x]表示以数值x结尾的LIS的长度。即t[x]=max(f[j]),a[j]==x,j<i。f[i]=max(t[x])+1,x<a[i]或x<=a[i 阅读全文
posted @ 2017-10-17 16:06 WeiAR 阅读(1007) 评论(0) 推荐(0) 编辑
摘要:最长公共字串(非连续)先考虑二维,复杂度O(n*m),但是空间复杂度太高了,n如果>100000就憨脸了。a[i][j]=a[i-1][j-1]+1(s[i]==s[j]),max(a[i-1][j],a[i][j-1]);降低空间复杂度,考虑使用滚动数组。从转移方程中可以看出,只会用到a[i-1] 阅读全文
posted @ 2017-10-17 11:27 WeiAR 阅读(159) 评论(0) 推荐(0) 编辑
摘要:P2782 友好城市一道伪装得很好的dp,一开始没想出来,不相交就是所有的都在右边,也就是对于当前的城市i和它的友好城市的坐标都在城市j和它的友好城市的右边,这样就转化成了求最长上升子序列,f[i]表示选到北岸的第i个城市,能最多批准数,不断更新最大值。要小心Max,没有更新的情况,所以要o(max 阅读全文
posted @ 2017-10-17 09:32 WeiAR 阅读(183) 评论(0) 推荐(0) 编辑
摘要:P1203 [USACO1.1]坏掉的项链Broken Necklace不错的断环为链的模拟题,开成三倍,有很多细节要考虑,比如总长度要<=n,开头第一个是w等等。 阅读全文
posted @ 2017-10-17 08:38 WeiAR 阅读(321) 评论(0) 推荐(0) 编辑
摘要:P1679 神奇的四次方数用一些什么东西组成一个什么东西,要求什么东西最优,这时候要考虑背包,不过要分析清楚是什么类型的背包。这题显然是个完全背包。 阅读全文
posted @ 2017-10-16 20:14 WeiAR 阅读(146) 评论(0) 推荐(0) 编辑
摘要:P2800 又上锁妖塔三种方式,当前这一层,是爬上来的,由上一层跳上来,由上二层跳上来。取min 阅读全文
posted @ 2017-10-16 16:37 WeiAR 阅读(155) 评论(0) 推荐(0) 编辑
摘要:[POI2010]GRA-The Minima Game一道与博弈相关的dp,想了好长时间,才想明白。A与B都是从大到小,取连续的一段,因为每次都是取当前拿走的元素的最小值。然后由小到大排序,f[i]表示两个人取完了,前i个元素,(先手-后手)的最大值,我一直卡在这里,我总是以为这里的先手就是A,后 阅读全文
posted @ 2017-10-16 15:03 WeiAR 阅读(285) 评论(0) 推荐(0) 编辑
摘要:Lucas定理适用于大组合数取模。C(n,m)%p==lucas(n,m,p)==C(n%p,m%p)*lucas(n/p,m/p,p);然后递归调用即可,显然,C(n,0)%p=1;因为p是质数,这里套用费马小定理,a^(p-1)=1(mod p),a的逆元为a^(p-2),然后套快速幂,预处理阶 阅读全文
posted @ 2017-10-15 21:35 WeiAR 阅读(149) 评论(0) 推荐(0) 编辑
摘要:PocketMoney( Money.pas/cpp/c)Description学校为了表彰tsoi的优异成绩, m个领导每人都决定给tsoi的一些人发一些小红包。于是n个Tsoier排成一排,等待着收钱。不过由于各种原因,每个人最多只可以收一个红包,所以原因你懂的,每个人都会选择最大的那个红包收下 阅读全文
posted @ 2017-10-15 21:34 WeiAR 阅读(420) 评论(0) 推荐(0) 编辑
摘要:常用数列斐波那契 1 1 2 3 5 8错排 1 0 1 2 9 44catalan 1 1 2 5 14 42 阅读全文
posted @ 2017-10-14 22:29 WeiAR 阅读(196) 评论(0) 推荐(0) 编辑
摘要:sqrt特别慢,两边同时平方,尽量避免开方。 阅读全文
posted @ 2017-10-14 21:24 WeiAR 阅读(181) 评论(0) 推荐(0) 编辑
摘要:树状数组在去年就会写会用了,记得去省选的时候66.7%的分数是靠树状数组得的。用法1:最开始用它是用它求逆序对,当前已经读了i个元素,比a[i]小的有query(i)个,那么比a[i]大而且比a[i]先读入的有i-query(a[i])个; 用法2:单点修改,区间求和 用法3:区间修改,单点查询这个 阅读全文
posted @ 2017-10-13 23:14 WeiAR 阅读(166) 评论(0) 推荐(0) 编辑
摘要:一定要排序,让相同的都靠在一起,这样才可以判重。 阅读全文
posted @ 2017-10-13 16:41 WeiAR 阅读(139) 评论(0) 推荐(0) 编辑
摘要:P1102 A-B数对用map过掉,可以当高效的桶排用,map<long long,int>m;意思是m[long long]==int; 阅读全文
posted @ 2017-10-13 16:39 WeiAR 阅读(255) 评论(0) 推荐(0) 编辑
摘要:codevs 1795 金字塔 2这个题比完全背包多了一个总数的限制,即一定要选(m+n)个,题中说总重量不超过n,所以至少选择m个重量为0的,然后初始化的时候,都填成重量为0的,然后再一个个地把它们拿出来,做完全背包。 阅读全文
posted @ 2017-10-13 08:44 WeiAR 阅读(107) 评论(0) 推荐(0) 编辑
摘要:P2296 寻找道路路径上的所有点的出边所指向的点都直接或间接与终点连通。题中的这个条件很难受,操作是,反向建边,然后从终点bfs,然后把能走到的点设成true。然后把false的点按反向边扩展一层,把扩展到的点卡掉。然后正向bfs就好了,小心“图G 中可能存在重边和自环,题目保证终点没有出边。”; 阅读全文
posted @ 2017-10-13 08:32 WeiAR 阅读(170) 评论(0) 推荐(0) 编辑
摘要:[USACO16JAN]子共七Subsequences Summing to Sevensa[i]表示前缀和如果a[i]%7==t&&a[j]%7==t那么a[j]-a[i-1]一定是7的整数倍,这样就o(n)扫一遍,不断更新答案就可以了。 阅读全文
posted @ 2017-10-12 21:16 WeiAR 阅读(192) 评论(0) 推荐(0) 编辑
摘要:P3397 地毯 前缀和最开始接触是在日照夏令营,lca的一段子树中加或减一个数然后打标记,求前缀和000+10000-100000000111110000二维也一样,比如对子矩阵都加10+100000-100+100000-100+100000-100+100000-100+100000-10然后 阅读全文
posted @ 2017-10-12 19:36 WeiAR 阅读(344) 评论(0) 推荐(0) 编辑
摘要:关于调用&&传址//数组int d1[];Function(int *d){} int main(){Function(d1);} //指针int *p;Function(int *q){} int main(){Function(p);}//结构体数组struct node{}*e1[1000]; 阅读全文
posted @ 2017-10-10 19:13 WeiAR 阅读(157) 评论(0) 推荐(0) 编辑
摘要:P1821 [USACO07FEB]银牛派对Silver Cow Party我当时看着邻接矩阵存的下,就想来一发floyed,然后发现了很多问题。floyed的判定条件非常严格,否则会挂。初始化为inf if(d[i][k]+d[k][j]<d[i][j]&&d[i][k]!=inf&&d[k][j 阅读全文
posted @ 2017-10-10 19:02 WeiAR 阅读(181) 评论(0) 推荐(0) 编辑
摘要:P3905 道路重建我一开始想错了,我的是类似kruskal,把毁坏的边从小到大加,并且判断联通性。但是这有一个问题,你可能会多加,就是这条边没用,但是它比较小,你也加上了。居然还有10分,数据也是水水的。。。 正解是把未坏的边的权值设成0,坏的边的值不变,跑spfa即可。 阅读全文
posted @ 2017-10-10 15:34 WeiAR 阅读(290) 评论(0) 推荐(0) 编辑
摘要:#define len 1000+10len*4<==>1000+40注意理解等量代换 阅读全文
posted @ 2017-10-10 09:10 WeiAR 阅读(133) 评论(0) 推荐(0) 编辑
摘要:P3512 [POI2010]PIL-Pilots我一开始打的O(n^2)(最坏情况)的算法.枚举区间长度。60分 正解不用枚举区间长度,动态维护+更新答案,O(n). 阅读全文
posted @ 2017-10-10 08:35 WeiAR 阅读(280) 评论(0) 推荐(0) 编辑
摘要:P2398 GCD SUM一开始是憨打表,后来发现打多了,超过代码长度了。缩小之后是30分,和暴力一样。正解是,用f[k]表示gcd为k的一共有多少对。ans=sigma k(1->n) k*f[k].g[k]表示f[k]+f[2*k]+...+f[(n/k)*k];so f[k]=g[k]-(f[ 阅读全文
posted @ 2017-10-09 16:14 WeiAR 阅读(156) 评论(0) 推荐(0) 编辑
摘要:priority_queue<int>q;//默认不递增q.size();//q中有几个元素q.pop();//删除队首q.top();//返回队首元素q.push();//在队列中插入一个元素 //这是由小到大 阅读全文
posted @ 2017-10-07 16:49 WeiAR 阅读(507) 评论(0) 推荐(0) 编辑
摘要:P1890 gcd区间我一开始80分暴力,模拟100做法dpO(n^2+m)f[i][j]表示i到j的 gcd初始化f[i][i]=i;f[i][j]=gcd(f[i][j-1],a[j]);这样查询就到了O(1) 80代码 100分 阅读全文
posted @ 2017-10-06 20:48 WeiAR 阅读(204) 评论(0) 推荐(0) 编辑
摘要:需要练习的东西二分答案二分查找单调队列分数规划问题并查集离散化图论第k大问题二分+哈希前缀和(一维和二维)dp(普及及以上难度)数论矩阵回文stl树状数组meet in the middle枚举&&搜素中位数LCP 阅读全文
posted @ 2017-10-06 19:58 WeiAR 阅读(129) 评论(0) 推荐(0) 编辑
摘要:北京第七天今天上午还不错,T1有一个特殊点没有考虑到,T2打的扩欧,60分,T3暴力还打炸了,40分。下午讲了很多字符串的东西,今天状态不好,没听懂太多,下午肚子撑得上,难受。晚上再看看吧。晚上也没去吃饭,去打球消化食,今天打小比赛,输了几场。和一个巴基斯坦来的留学生打的球,英语终于在非考试场合用上 阅读全文
posted @ 2017-10-06 19:04 WeiAR 阅读(127) 评论(0) 推荐(0) 编辑
摘要:#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>#define p 1000000007#define For(i,a,b) for(register long long i=a 阅读全文
posted @ 2017-10-05 20:55 WeiAR 阅读(134) 评论(0) 推荐(0) 编辑
摘要:北京第六天写t1的时候我写了暴力对拍,然后发现@echo off:looprandt1blfc t1.out bl.out &&goto loop对,就是这个东西,忘了怎么写,然后手动对拍,浪费了不少时间,然后我忽略了空间,我MLE了。因为原来从都没有过,所以一直没太注意。一开始想到正解了,然后没写 阅读全文
posted @ 2017-10-05 16:05 WeiAR 阅读(117) 评论(0) 推荐(0) 编辑
摘要:bool 1int 4long long 8double 8用sizeof(a)来求字节1M=1024KB=1024*1000B1B=1字节 阅读全文
posted @ 2017-10-05 14:26 WeiAR 阅读(319) 评论(0) 推荐(0) 编辑
摘要:在队列中,q.empty()比q.size()要慢,如果可能就用q.size(); 比如spfa的 while(q.size()>0) better than while(!q.empty()) 阅读全文
posted @ 2017-10-04 23:09 WeiAR 阅读(700) 评论(0) 推荐(0) 编辑
摘要:每天练习的模板gcdexgcdlcaspfakruskal离散化线性筛扩欧求逆元递推求逆元快速幂慢速幂树状数组3操作lucas定理 阅读全文
posted @ 2017-10-04 19:47 WeiAR 阅读(86) 评论(0) 推荐(0) 编辑
摘要:北京第5天 对了,今天中秋节。 今天天气极其舒服,阳光很好,微冷,然后我有些放松了,上午的比赛总共10分,还是在最后1分钟里得的。T1几个字符打错了,不然就100分的,因为我放松警惕了,没出数据调试和验证,我居然相信了样例。 T2我是过个1个点的,可惜当时我没有离散化,唯一跑出来的一个点还T了,还有 阅读全文
posted @ 2017-10-04 19:44 WeiAR 阅读(83) 评论(0) 推荐(0) 编辑
摘要:北京今天降温啦,空气十分清爽,上午测试60分,16名。。比较有感触的第一题,当时总是想各种正解,各种找规律,我为啥不先打一个最简单的暴力那?然后我浪费了近两个小时,最后还是暴力打表,T2懵逼,T3懵逼,话说T3是个九维的dp那,害怕,T2确实比价难,不过还好搞懂了,毕竟lca的题没有什么很简单的。下 阅读全文
posted @ 2017-10-03 21:48 WeiAR 阅读(96) 评论(0) 推荐(0) 编辑
摘要:北京第四天 上午T1,我把 #include<iostream> using namespace std; for(int i strlen()) return 0; 写到for里了,zzzzz.然后T掉了40分,这可是noip的D1T1啊。 第2题想错了,我按左端点拍的序,实际上要按右端点,还是基 阅读全文
posted @ 2017-10-03 20:52 WeiAR 阅读(189) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2017-10-02 12:49 WeiAR 阅读(1) 评论(0) 推荐(0) 编辑
摘要:北京第二天 今天上午的饭菜很赞,只是中午时间太紧了。上午测试,108分,40名,第二题打的时间太长了,都没来得及调试。T1当时想到了最大连续子段和,然而打挂了,就没再深入去想。T2着实很恶心啊,话说我为啥同样的语句复制了好几遍而不打一个函数呢?脑抽日常。T3好像是个不太难的BFS,类似那些八数码什么 阅读全文
posted @ 2017-10-01 18:31 WeiAR 阅读(94) 评论(0) 推荐(0) 编辑
摘要:exit(0)直接结束所有程序,不是递归一层一层的回去。 阅读全文
posted @ 2017-10-01 17:43 WeiAR 阅读(90) 评论(0) 推荐(0) 编辑