- 博客(220)
- 收藏
- 关注
原创 UESTC 86 Divide(贪心+二进制)
http://acm.uestc.edu.cn/#/problem/show/86 弱校联萌的题,比赛时没出,赛后看了题解补的。 题目大意是有多堆宝物,每堆价值为2^ai个数为xi,输出把所有宝物分成两堆价值差的最小值的二进制表示。 进行预处理,类似于二进制运算,从价值最小宝物开始进位,同时标记当前位是否被进位过,被进位过的那一位不管最后值是多少总是可以均分的。然后把最高位不能均分的宝物作为一
2015-10-09 20:00:03 1741
原创 UESTC 84 Binary Operations(位运算+DP)
http://acm.uestc.edu.cn/#/problem/show/84 弱校联萌的题,比赛时没出,赛后看了题解补的。 题目大意是给出一个数列,输出任意选择一段连续子序列&、|、^的期望值。 首先将每一个数字按二进制位分解,然后对于每一种运算DP求期望,具体细节见代码。
2015-10-09 19:45:58 1408
原创 UVa 1395 - Slim Span(MST)
给出n个结点,m条边,求一个最大边权与最小边权之差最小的生成树。首先对所有输入的边进行排序,以每一条边作为最小边权的边做一次MST,维护最小边权差输出。
2015-09-09 22:19:17 1858
原创 UVa 1262 - Password(组合数)
给出两个6*5矩阵,有一个5位的密码,密码的第i位必须在两个矩阵的第i列都出现过,问输出字典序第k大的满足条件的密码,无解输出“NO”。预处理出每一位满足条件的字母,然后计算后几位密码可行的种数。对k进行判断后输出,具体细节见代码。
2015-08-30 16:03:45 2059
原创 UVa 1647 - Computer Transformation(找规律+递推)
暴力枚举前几项后发现规律a[i]=a[i-1]+2*a[i-2]。然后打表就好。
2015-08-30 11:51:50 1578
原创 UVa 1663 - Purifying Machine(二分匹配)
给出一些01串,含星号的串表示包含两个串,星号位置分别为0和1。每次可以消掉一个串或者两个只有一个数字不同的串,求最少几次可以消掉所有串。读出所有串,两两判断能否一起消掉,然后其最大匹配数即可。具体细节见代码。
2015-08-29 20:59:16 2170
原创 UVa 10635 - Prince and Princess(LCS转LIS)
给出两个序列,第一个序列中的数不重复,求两个序列的LCS。以为第一个序列的数不同,所以可以保存数在第一个序列中出现的顺序,然后删除第二个序列中不再第一个序列中的数,将剩下的数换成在第一个序列中出现的位置,对处理好的序列求LIS。
2015-08-29 20:48:52 1367
原创 UVa 1121 - Subsequence(尺取法)
给出一个序列,求连续子序列和大于s的最短子序列长度。尺取法,最开始子序列只有第一个数,当不满足条件时,移动终点延长子序列;当序列和满足条件时,移动起点缩短子序列,遍历数组复杂度O(n)。
2015-08-29 20:30:36 1347
原创 UVa 11549 - Calculator Conundrum(Floyd判圈法)
现在输入一个整数k,每次取前n位,反复平方,一直下去,输出能得到的最大数。每次取前n位所以一定会出现循环,使用Floyd判圈法判断是否出现重复。输出循环中的最大值。
2015-08-29 20:24:46 1376
原创 UVa 11520 - Fill the Square(构造法)
向正方形中填字母,每个字母不能和邻近的字母相同,输出字典序最小的解。直接从第一个开始构造,从A到Z枚举生成。
2015-08-29 20:19:46 1329
原创 UVa 12097 - Pie(二分查找)
给出n、m,有n个蛋糕,m+1个人,每个蛋糕都可以切开,求每人分一整块蛋糕的最大值。求出蛋糕大小总和,然后进行二分查找,对二分的值进行验证。
2015-08-29 20:07:32 1473
原创 UVa 1303 - Wall(凸包)
求所给点的凸包每个顶点向外延伸半径为l的圆后所得图形的周长。凸包周长模板题,求得凸包周长后加上以l为半径的圆的周长就是墙的长度。
2015-08-29 19:51:31 1463
原创 UVa 10780 - Again Prime? No Time.(唯一分解)
求最大k使(m^k)%n=0。首先筛选出所有素数,然后求出所有n,唯一分解的结果。对于m进行分解,对于每一个在m中的素数p[i]的指数e[i],k=min(e[i])。
2015-08-29 19:29:50 1581
原创 UVa 10943 - How do you add?(组合数)
求一个数n拆成k个数的方法个数。 利用隔板法求得ans={{n+k-1}\choose{k-1}} 递推组合数即可。
2015-08-29 18:59:39 1645
原创 UVa 821 - Page Hopping(Floyd)
给出能相互到达的网页,输出在给出的网页中相互到达需要点击几次,首先离散化,然后用Floyd求少点击次数,枚举求平均点击次数。
2015-08-29 18:42:37 1397
原创 UVa 242 - Stamps and Envelope Size(DP)
给出一个s,然后给出n组邮票,问那一组可以凑出最大连续邮资。对每一组邮票,求出当邮资为i时需要邮票数的最小值d[i],边界为d[0]=0、d[i]>s时break。类似于背包问题的求法,具体方法见代码。
2015-08-29 18:10:46 2001
原创 UVa 10934 - Dropping water balloons(DP)
给出n个相同的气球,k层楼,问最少几次试验可以知道气球最高从多少层扔下不会爆。用d[i][j]表示用i个球,实验j次所能确定的最高楼层数,对于每一次试验分爆和不爆两种情况讨论:1、爆了,转移到d[i-1][j-1]+1,用掉了1个球和一次试验机会。2、没爆,将当前测试层数的上一层当做第1层继续进行试验,转移到d[i][j-1]。得出转移方程d[i][j]=d[i-1][j-1]+1+d[i][j-1]。
2015-08-29 18:01:41 1427
原创 UVa 1218 - Perfect Service(树形DP)
给出一个计算机网络,选取其中给一部分作为服务器,问最少选择几个服务器。一共有三种状态:1、d[u][0]:u是服务器,每个子结点可以是也可以不是。2、d[u][1]:u不是服务器,但u的父亲是,u的子结点都不是服务器。3、d[u][2]:u和u的父亲都不是服务器,u的子结点恰有一个是服务器。
2015-07-29 20:09:29 2182
原创 UVa 1643 - Angle and Squares(叉乘求面积)
给出两个点和多个正方形,求两点与原点连线和正方形围成的最大面积。当正方形对角线共线且与两边构成等腰三角形是面积最大。联立方程求出三角形底边两点坐标,然后利用向量叉乘求出面积。
2015-07-28 16:46:41 1715
原创 UVa 10820 - Send a Table(欧拉函数)
求给出的范围内有多少对互素的整数答案为2*f(n)+1,f(n)=sum{phi(n)}。
2015-07-28 16:39:36 1290
原创 UVa 1635 - Irrelevant Elements(唯一分解)
对m进行分解,然后从C(n-1,0)计算到C(n-1,n-1),对每个数能否被m整除。
2015-07-28 16:31:41 1366
原创 UVa 12716 - GCD XOR(筛选+规律)
输入一个数n(1≤n≤30000000),输出有多少对整数满足1≤a≤b≤n且gcd(a,b)=a xor b。设c=a xor b,则a xor c=b。找规律可得,当满足条件时,c=a-b。因此,枚举c、a,对每一对验证c=a xor b即可。时间复杂度O(nlogn)。
2015-07-27 21:10:59 1372
原创 UVa 10791 - Minimum Sum LCM(唯一分解)
首先筛选出2到sqrt(2^31-1)的素数,然后对每个输入的数进行分解。最后若只有一个素因子,则得出的和要加1。输入为1时,输出为2。
2015-07-27 19:47:11 1470
原创 UVa 1629 - Cake slicing(记忆化搜索)
对每块蛋糕进行统计,若有1颗就直接返回1,2颗或以上就继续切,没有则不可行。然后继续切的话枚举每一个可以切的方法,记忆化搜索。
2015-07-27 17:04:38 1599
原创 UVa 10723 - Cyborg Genes(LCS)
给出两个序列,要求合并后的序列的子序列包含所给序列,为合并后序列的最短长度和有几种合并方式可以合并出最短序列。类似于求公共子序列的方法,具体转移方程见代码。
2015-07-27 16:58:56 1395
原创 UVa 11582 - Colossal Fibonacci Numbers!(取模+周期)
计算第a^b个斐波那契数对n取模的值。对不同的n取模,最长n^2就会出现循环。首先预处理计算所有可能的值,然后对每个输入快速幂取模找在周期中的位置输出。数据大必须用unsigned long long。
2015-07-27 10:24:55 1541
原创 UVa 10271 - Chopsticks(DP)
给出n只筷子,找出k+8组,每组三根,输出每组最短两根长度差的平方和的最小值。倒序读入,对每个可以选的点位有两种转移状态。DP数组滚动使用,节约空间和初始化时间。状态转移方程:d[i][j]=min(d[i-1][j],d[i-2][j-1]+(a[i]-a[i-1])^2)
2015-07-26 17:35:41 1349
原创 UVa 1220 - Party at Hali-Bula(最大独立集)
d[u][1]和d[u][0]分别表示选结点u和不选结点u在它的子树中最大的数目,f[u][t]表示相应选法的唯一性。d[u][1]=sum{d[v][0]},d[u][0]=sum{max(d[v][0],d[v][1])}。当选择结点的子树的方案有不唯一时,该结点方案不唯一。
2015-07-26 16:23:39 1332
原创 UVa 11536 - Smallest Sub-Array(尺取法)
给出一个n、m、k,生成一个序列。问其中包含1到k所有正整数的最短连续子序列的长度。
2015-07-26 11:39:10 1326
原创 UVa 12174 - Shuffle(滑动窗口)
给出一段播放记录,判断下次随机开始的地方有几种不同情况。首先利用滑动窗口判断当前位置的前s个位置数字是否均不同。然后枚举终点,每次进行验证。
2015-07-26 11:03:19 1500
原创 UVa 10570 - Meeting with Aliens(构造法)
将序列储存两遍,用数组代替环,然后枚举起点,每次都把当前数交换过来,即可得到答案。
2015-07-25 19:18:09 1360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人