ACM
文章平均质量分 52
小天位
这个作者很懒,什么都没留下…
展开
-
【每日一题】
...原创 2019-03-01 13:36:44 · 583 阅读 · 0 评论 -
递推DP
HDU2048神、上帝以及老天爷HDU 2006'10 ACM contest的颁奖晚会隆重开始了!为了活跃气氛,组织者举行了一个别开生面、奖品丰厚的抽奖活动,这个活动的具体要求是这样的:首先,所有参加晚会的人员都将一张写有自己名字的字条放入抽奖箱中;然后,待所有字条加入完毕,每人从箱中取一个字条;最后,如果取得的字条上写的就是自己的名字,那么“恭喜你,中奖了!”大家可以想象一下...原创 2018-11-30 21:41:56 · 469 阅读 · 0 评论 -
错排问题
错排问题:考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用D(n)表示,那么D(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推.第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法;第二步,放编号为k的元素,这时有两种情况...原创 2018-11-30 21:21:22 · 1122 阅读 · 0 评论 -
【bzoj 2460 [BeiJing2011]元素】
题意: 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔法矿石炼制法杖的技术。那时人们就认识到,一个法杖的法力取决于使用的矿石。一般地,矿石越多则法力越强,但物极必反:有时,人们为了获取更强的法力而使用了很多矿石,却在炼制过程中发现魔法矿石全部消失了,从而无法炼制出法杖,这个现象被称为“魔法抵消” 。特别地,如果在炼制过程中使用超过一块同一种矿石,那么一定...原创 2018-11-30 20:58:44 · 395 阅读 · 0 评论 -
【bzoj21115 [Wc2011] Xor 带全无向图中1道n经过路径权值的最大异或和(含有环)】
这道题要求从1到n的最大xor和路径,存在重边,允许经过重复点、重复边。第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目。 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 Di的无向边。 图中可能有重边或自环。输出:仅包含一个整数,表示最大的XOR和(十进制结果) 输入5 71 2 21 3 22 4 12 5...原创 2018-11-30 20:56:06 · 721 阅读 · 0 评论 -
【bzoj2844 albus就是要第一个出场】
题意:给定一个n个数的集合S和一个数x,求x在S的2n2n个子集从小到大的异或和序列中最早出现的位置根据性质每一个数字出现的次数是相同的都是2^(n-cnt)个,cnt是线性基中元素得个数 #include<bits/stdc++.h>#include <iostream>#include <cmath>#include <cstdio&g...原创 2018-11-30 20:47:24 · 163 阅读 · 0 评论 -
【 hdu3949 XOR】
从n个数中任选m(m>=1)个数异或起来,求所有可能的异或和的第k小值。用到了0能不能被异或出来的问题。如果线性基的大小和原数组一样,0是不能被异或出来的,否则可以。在求k小值的时候要注意 #include<bits/stdc++.h>#include <iostream>#include <cmath>#include <cst...原创 2018-11-30 20:43:15 · 139 阅读 · 0 评论 -
【线性基总结】
线性积基于线性代数中的无关向量组回顾线性代数中的无关向量组的无关性,若两个向量线性相关,肯定可以相互表示,ax1+bx2+cx3=0有不全为0的数表示,则说明向量组x1 x2 x3是线性相关的若一个矩阵可逆,还有他的秩不为0,构成这个矩阵的向量组线性无关1.线性基的异或集合中不存在0。2.线性基的异或集合中每个元素的异或方案唯一3.线性基二进制最高位互不相同。4.线性基中元素互相...原创 2018-11-30 20:15:24 · 427 阅读 · 0 评论 -
牛客108D
小a有n个数,他提出了一个很有意思的问题:他想知道对于任意的x, y,能否将x与这n个数中的任意多个数异或任意多次后变为y第一行为一个整数n,表示元素个数第二行一行包含n个整数,分别代表序列中的元素第三行为一个整数Q,表示询问次数接下来Q行,每行两个数x,y,含义如题所示输出Q行,若x可以变换为y,输出“YES”,否则输出“NO”51 2 3 4 536 7 2 13 8Y...原创 2018-11-30 20:21:17 · 151 阅读 · 0 评论 -
【分组背包问题 (HDU 3535 )】
用到至少选择一个,所以没有空间优化分组背包问题:常见的三种分组问题:分成K组:1、每组最多只能取一件物品一维数组伪码:for 0 to K 对每一组进行 for W to 0 对每一个代价进行判断 ///1 for all item i in group k ///2 这行个互换好像也对 dp[w]=max(dp[w],dp[w-c[i]...原创 2018-12-05 08:48:35 · 439 阅读 · 0 评论 -
【hdu4281状态压缩+01背包+多旅行商问题】
题意:有n道题,每道题在二维平面内的不同位置且给出每道题的坐标,同时给出处理每道题所需的时间p,现在已知裁判的耐心有限,之会花费m个单位时间去做事,做完后回到起始点。现在的要求是,我要多少个裁判才能对每个问题都处理完,并且同一道题不能有两个裁判进行处理,并求出总路径最小的值。总复杂度O(2^(2*n)+(2^n*n^2))#include <bits/stdc++.h>#i...原创 2018-12-04 23:56:07 · 447 阅读 · 0 评论 -
【UVA624 01背包中的路径问题】
UVA624给你一个序列,让你从其中选出一些数,然后得到最接近题目所给的一个数,并需要输出所选的数考察o1背包容量是从大到小容量减少的方式来进行装入的,路径记录,感觉好题啊初始化为求正好放满的模型#include<cstdio>#include<cstring>#include<iostream>using namespace std;co...原创 2018-12-04 23:50:18 · 181 阅读 · 0 评论 -
【递推DP&技巧 hdu 2050 折线分割平面】
我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。Input输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0<n<=10000),表示折线的数量。Output对于每个测试实例,请输出平面的最大分割数,...原创 2018-11-30 21:53:20 · 196 阅读 · 0 评论 -
【递推DP+加深】
zoj 3747题意:给n个士兵排队,每个士兵三种G、R、P可选,求至少有m个连续G士兵,最多有k个连续R士兵的排列的种数。都转化为至多的士兵连续的个数。令集合A={至多n个G士兵连续,且至多K个R士兵连续}集合B={至多m-1个G士兵连续,且至多K个连续的R士兵连续}C=A-B={至少m个士兵连续,且至少连续K个士兵连续}。在转化要如何求 至多x个G士兵连续,至多y个士兵连续d...原创 2018-12-01 06:59:57 · 162 阅读 · 0 评论 -
【poj1088 记忆话搜索】
Michael喜欢滑雪这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道在一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11...原创 2018-12-03 06:15:49 · 145 阅读 · 0 评论 -
【HDU4497 GCD and LCM】
题意:已知l,g其中g=gcd(x,y,z),l=lcm(x,y,z),问有x,y,z多少种组合使得关系成立。 题解:已知x%g=y%g=z%g=0,l%x=l%y=l%z=0,所以l%g=0。这个可以判定是否存在(x,y,z)符合条件。gcd(a,b,c)=p; => gcd(a/p,b/p,c/p)=1 要不然gcd(a,b,c)>p且 lcm(a/p,b/...原创 2018-12-02 09:08:25 · 262 阅读 · 0 评论 -
伯努利不等式
伯努利不等式:(1+x1+x2+x3....+xn)<=(1+x1)(1+x2)(1+x3)...(1+xn)对实数x>-1 当n>=1: (1+x)^n>=1+xn 当 0<=n<=1 (1+x)^n<=1+xn 当n=1时等号成立原创 2018-12-02 08:30:38 · 9204 阅读 · 1 评论 -
【HDU2683 TCE-frep number system 完全数+二项展开式】
g(n)是n的因子和A a b 查询a b区间有多少个n满足上式。Q a 查询a满不满足式子 参考#include <bits/stdc++.h>//#include <iostream>//#include <cstdio>#define X 10005#define inF 0x3f3f3f3f#define PI 3.141592653...原创 2018-12-02 08:28:26 · 326 阅读 · 0 评论 -
【HDU 2814 扩展欧拉 a^b ≡ (a mod c)^b mod ϕ(c)+ϕ(c) modc,b>=ϕ(c) 】
G(1)=F(ab)G(1)=F(ab) G(n)=G(n−1)F(ab)(n>=2)G(n)=G(n−1)F(ab)(n>=2)求G(n)modc具体:In mathematics, the Fibonacci numbers are a sequence of numbers named after Leonardo of Pisa, known as Fibonacci ...原创 2018-12-02 06:48:43 · 220 阅读 · 0 评论 -
HDU3988 大整数质因数分解【Miller_Rabin 进行素数判定+Pollard_rho对整数进行因数分解】
iSea is tired of writing the story of Harry Potter, so, lucky you, solving the following problem is enough. InputThe first line contains a single integer T, indicating the number of test cases. ...原创 2018-12-01 18:14:44 · 601 阅读 · 0 评论 -
【HDU1582 HDU1452 HDU1098 HDU3524 HDU1005 HDU2623 HDU2674】
题意:求2008^n的所有因子和对k取余,得到m,然后在求2008^m对给出的k取余。k是任意数(k>0)分析: 1. 用素因子唯一分解定理,对2008分解。 2. 素因子求和公式之后得到m 3. 因为要(a*b/250)%k 对于给定的k和250不确定是否互质,所以不能用求逆元的方法 4. 公式a/b%k=a%(b*k)/b 5. 快速幂求解最终结...原创 2018-12-02 09:08:52 · 505 阅读 · 0 评论 -
【HDU2582 关于 gcd( C[n][1],C[n][2],C[n][3],........C[n][n-1) 】
给出公式Gcd(n)=gcd(C[n][1],C[n][2],……,C[n][n-1]),求f(n)= Gcd(3)+Gcd(4)+…+Gcd(i)+…+Gcd(n)。关于组合数的最大公约数:gcd(C[n][1],C[n][2],C[n][3],........C[n][n-1)当n 只有一个素数因子的时候,gcd=素数因子当n 有多个素数因子的时候,gcd=1 #inclu...原创 2018-12-01 17:56:46 · 218 阅读 · 0 评论 -
【2017沈阳现场】
Fimport java.math.*;import java.util.*;import java.io.*;public class Main{ public static void main(String[] args){ Scanner cin=new Scanner(System.in); BigInteger aa=BigIntege...原创 2018-12-01 13:43:24 · 241 阅读 · 1 评论 -
【2016 Asia China-Final D题】
题意: 现在有n个蛋糕值,要求把n个蛋糕值摞起来,螺成k层,而每一层得蛋糕值至少是上一层蛋糕值得2倍,求最后最多可以螺成几个蛋糕. 例如第一个样例 1 2 3 4 要成2层,那么有(1 3) (2 4)所以最多可以形成2个 思路是二分枚举最多可以成为多少个 然后看最这个是否满足有k层得这些个 自己再找是否有k个可以满足得时候,完美的写的超时...原创 2018-12-01 13:38:11 · 206 阅读 · 0 评论 -
【2015沈阳现场A】
题意:求个一个n 求2^n-1能被7整除得有多少个,(1,2,....n)简单得同余方程#include<bits/stdc++.h>#include <iostream>#include <cmath>#include <cstdio>#include <stdlib.h>#include <ctime>...原创 2018-12-01 13:26:19 · 269 阅读 · 0 评论 -
【 HDU1043-经典BFS+康拓展开 八数码】 (待更)
给定一个序列,由1~8数字和字母x组成,表示的是一个3*3的矩形。每次操作x都能与相邻的数字交换,问如何操作才能使得序列为{1,2,3,4,5,6,7,8,x}。 //多组数据-需要计算全部路径后直接输出//反向搜索+打表(离线)#include<iostream>#include<cstring>#include<cstdio>#inclu...原创 2018-12-01 13:23:17 · 256 阅读 · 1 评论 -
【康拓展开&逆康托展开】
百度百科就够了自己的体会:康托展开是基于比他小的前面的个数来进行计算的 另外康托展开也是一个数组到一个数的映射,因此也是可用于hash,用于空间压缩。比如在保存一个序列,我们可能需要开一个数组,如果能够把它映射成一个自然数, 则只需要保存一个整数,大大压缩空间。比如八数码问题。欧拉项目上的第二四题就需要用逆康拓展开的,不过这道题不是说的自然数,包括0,所以构建数组的时候把0...原创 2018-12-01 13:17:00 · 198 阅读 · 0 评论 -
【light 1341Aladdin and the Flying Carpet】
给你矩形的面积(矩形的边长都是正整数),让你求最小的边大于等于b的矩形的个数。肯定是和面积的因子有关系了,边长都是面积值的 因子。那么就可以算出面积值得所有因子,因为是让求得矩形得个数,当然是要<<1了,还有个限制条件就是最小得边长要大于等于b得,那么把小于b得因子减去,得到的值就是符合条件的对数了210 212 2Sample OutputCase 1: 1C...原创 2018-12-01 13:01:27 · 170 阅读 · 0 评论 -
【01背包的k值问题 HDU2639 HDU2126】
HDU2639有深度吧感觉还题意:给出一行价值,一行体积,让你在v体积的范围内找出第k大的值终结第k大的01背包,复杂度: O(NMK)注意选取的标准,选取后,要保证得到的价值是大于未选之前,选之后若是相等的话,这样应该是不能选的,因为占用了空间 #include <bits/stdc++.h>#include <iostream>#define X ...原创 2018-12-04 23:49:26 · 222 阅读 · 0 评论 -
【常规的01背包 POJ3624 UVA562 HDU2546 HDU3466 poj1745】
POJ3624有N个物品,分别有不同的重量Wi和价值Di,Bessie只能带走重量不超过M的物品,要是总价值最大,并输出总价值//#include <bits/stdc++.h>#include <iostream>#define X 10005#define inf 0x3f3f3f3f#define PI 3.1415926535897932384626...原创 2018-12-04 23:43:02 · 219 阅读 · 0 评论 -
【二维费用的01背包 HDU3496 HDU2184】
HDU3496 已空间优化 疑惑点在 dp[时间][看电影数量]的初始化问题上面 dp[0][0]=0。。。。是吧 dp[0][i]=-inf,,,,,,,这个-inf一定要足够大,题目中的数据是输出的最大价值是<2^31 LL 在dp[0][i]更新的时候,最后是dp[0][i]+总和val,那这儿的-inf肯定是要足够足够大 最后才保证dp[0][i]在...原创 2018-12-04 23:35:17 · 277 阅读 · 0 评论 -
2018 Spring Team Contest A +
Problem A Alien Sunset#include<iostream>#include<cstring>#define inf 0x3f3f3f3fusing namespace std;struct node{ int h; int l; int r;}s[25],a[25];int main(){ int n...原创 2018-05-03 20:45:45 · 305 阅读 · 0 评论 -
2018 Spring Team Contest D HDU - 6023、HDU - 6024、HDU - 6025 、HDU - 6027 、HDU - 6029
HDU - 6023 //编译错误不算罚时#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int vis[100];int num[20];int main(){ int t; ci...原创 2018-05-01 21:17:02 · 311 阅读 · 0 评论 -
hdu 5925 离散化 搜索
Problem DescriptionTanBig, a friend of Mr. Frog, likes eating very much, so he always has dreams about eating. One day, TanBig dreams of a field of coconuts, and the field looks like a large ches...原创 2018-03-24 17:57:44 · 195 阅读 · 0 评论 -
Sculpture ACM/ICPC NWERC 2008 离散化
#include <iostream>#include <queue>#include <algorithm>#include <cstring>using namespace std;const int N=50+5;const int C=1e3+1;int n;int x0[N],y0[N],z0[N];int x1[N]...原创 2018-03-24 17:57:28 · 210 阅读 · 0 评论 -
poj 3349 雪花
题目大意:每片雪花有 6 个角长度的值,对于不同的雪花而言,这些值可能被反转,并且开头的长度未必是一致的例如 1 2 3 4 5 6和 4 3 2 1 6 5,虽然他们表面上不同,但是经过反转和偏移以后,就是相同的雪花。 在输入数据中如果有相同的雪花,则输出yes,否则输出no。这个题目为什么适合用哈希表呢,个人觉得主要一个原因是数据不好排序,因为六片花瓣顺序被原创 2017-11-27 21:51:04 · 382 阅读 · 0 评论 -
hdu 1228 A+B (字符串处理) 水
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11543 Accepted Submission(s): 6699Problem Description读入两个小于100的正整数A和B,计算A+B.需要注原创 2017-10-20 18:36:59 · 239 阅读 · 0 评论 -
poj 2718
题意:一组数分成两个数得到最小差~思路:得到最小差的数是有规律的,两个数总是在数列中部(n/2)截取,使用DFS得到组合数,功能相当于next_permutation,但是更自由,可以求得前面的组合之后对后面再进行进一步的操作。 还有一个超时问题:一开始是得到一个数列的组合之后再从中间进行切割得到两数,但是超时了0.0.....后来采用的方法是将前面的数在 DFS中得...原创 2017-11-29 13:25:42 · 227 阅读 · 0 评论 -
2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 C: Coconut
C: Coconuttime limit200msmemory limit131072KBCoconut is Captain Gangplank's favourite fruit. That is why he needs to drink coconut juice fromb coconuts each day.On his next trip, he woul原创 2017-09-09 18:39:12 · 357 阅读 · 0 评论 -
2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 A: Banana
A: Bananatime limit200msmemory limit131072KBBananas are the favoured food of monkeys.In the forest, there is a Banana Company that provides bananas from different places.The company h原创 2017-09-09 18:32:58 · 2159 阅读 · 0 评论