- 博客(48)
- 收藏
- 关注
原创 hdu 4276 The Ghost Blows Light 树形dp 时间优化技巧
有n个房间构成一棵树结构,n-1条路都有权值,代表经过花费的时间,一个人在房间1,出口在房间n,T秒后这座房子将要倒塌。每个房间有一定价值的宝物,问逃出时最大可带走多少价值的宝物。
2016-07-31 10:44:57 405
原创 UVA 10674 Tangents 求两圆切线
给出两圆求切线。一顿套模板,结果完全按照大白来好像过不了...#include#include#include#include#include#include#include#includeusing namespace std;#define all(x) (x).begin(), (x).end()#define for0(a, n) for
2016-07-29 16:40:33 612
原创 FZU 1852 Impossible Mission II floyd+TSP
Problem 1852 Impossible Mission IIAccept: 76 Submit: 296Time Limit: 2000 mSec Memory Limit : 32768 KB Problem Description“活着,一定是没有意义的。但是活下去的话,说不定却能遇见有趣的东西。如你遇见这花,如我遇见你。” — 岸本齐史
2016-07-27 15:05:39 388
原创 hdu 5735 Born Slippy 折半枚举
题解上说的很清楚折半枚举,mx[le][ri]代表往根结点方向的某一节点j的权值前8位为le、当结点权值后8为为ri情况下的,后8位操作和的最大值。权值的大小有限,折半枚举时间正好。#include#include#include#include#include#include#includeusing namespace std;#d
2016-07-27 14:02:32 433
原创 CF 219D. Choosing Capital for Treeland 树形DP
D. Choosing Capital for Treelandtime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThe country Treeland consi
2016-07-26 10:00:25 1066
原创 uva 10970 Big Chocolate 思维
题目链接题意:给你一个n*m的巧克力,有n行,每一行有m小块。需要把它切成全部都为1*1的小巧克力块。问最小切割次数。一次只能切一块巧克力。解法:这个题很简单,但不一定能想到,因为每次只能多切出1块,一开始是1块,最后是n*m块,答案一定是n*m-1。#includeusing namespace std;int main(){ int
2016-07-26 09:46:47 257
原创 hdu 1011 Starship Troopers dp 带点坑的树形背包 ★
Starship TroopersTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 17034 Accepted Submission(s): 4509Problem DescriptionYou, t
2016-07-26 09:20:44 643
原创 POJ 3162 Walking Race TreeDP+双单调队列 ★
题意:求出树上每个点到最远点的距离,构成一个序列,然后找到最长的区间,满足其中最大值与最小值之差不超过M,输出区间长度。
2016-07-25 15:01:41 646
原创 hdu 5733 tetrahedron 求四面体内切球球心坐标及半径大小
tetrahedronTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 720 Accepted Submission(s): 291Problem DescriptionGiven four point
2016-07-24 15:05:16 1924 2
原创 hdu 5731 Solid Dominoes Tilings 插头dp+容斥原理
题意:给出一个n*m大小的棋盘,需要你用1*2的砖铺满它,砖不可重叠,并且要求棋盘上没有行分割线或列分割线。输出方法种数。需要取模。
2016-07-23 21:26:31 1357 3
原创 uva 10118 Free Candies dp(分析+状压)
桌上有4堆糖果,每堆糖果高度不超过40,每颗糖果有一种颜色(一共20种,1,2,3...,20),有一个篮子,一开始是空的,每当里面装有两颗颜色相同的糖果时,就可以从篮子里拿出这一对糖果。如果篮子里的糖果数量为5个并且不能再拿时,篮子充满,游戏结束。问最多能拿走多少对糖果。糖果堆上的所有糖果拿光了也算结束
2016-07-22 09:26:12 518
原创 uvaLive 3263 That Nice Euler Circuit 欧拉定理
题意:给出一个一笔画图形所经过的端点,最后一个点正好是出发点(共有n个点,n问平面被分成了多少部分欧拉定理:平面上顶点数 v,边数 e,面数 fv+f-e=2所以f=e+2-v#include#include#include#include#include#include#includeusing namespace std;#de
2016-07-20 16:45:56 464
原创 uva 11178 Morley's Theorem 三角形内角三等分线交点
给出一个三角形ABC,共有6条内角三等分线:AF 、AE、 BF、 BD、 CE、 CD,求点D、E、F的坐标。#include#include#include#include#include#include#includeusing namespace std;#define all(x) (x).begin(), (x).end()#define for0(a,
2016-07-20 14:56:45 1369
原创 uvaLive 2701 Find The Multiple
题意:给出n解法:只用找一个最小即可。贪心+bfs。数太大,却不用大数,因为只要求是n的倍数,完全可以存储模n后的余数。因为用了bfs,所以如果一个余数访问过一次,那么再次访问一定不再加入队列,因为这显然不是最优解。记录路径输出。#include#include#includeusing namespace std;int n;
2016-07-20 09:23:08 340
原创 hdu 1695 GCD 容斥原理
题意:给出区间[a,b],[c,d]和数k,(最大均为十万),在[a,b]中选一个数x,[c,d]中选一个数y,是的gcd(x,y)=k。问题转化为[1,b/k],和[1,d/k]中选两数x,y,使得gcd(x,y)==1。令b'=b/k,d'=d/kGCDTime Limit: 6000/3000 MS (Java/Others)
2016-07-20 08:12:57 401
原创 uva 10795 A Different Task 一般化的汉诺塔
题意:给出三个柱子,放盘子,要求大的盘子只能放在小的下面,现在给出n(n考虑方式:每次先考虑最大的盘子k,如果两个局面位置不变,那么视作没有,直接考虑次大盘。否则第一步:需要将1,2,3...k-1全部移动柱子6-des[k]-now[k] (既不是k的目标位置,也不是k的初始位置)第二步:将k移动到des[k]第三部: 将6-des[k]-now[k]上的盘子都移
2016-07-19 09:47:35 352
原创 LA 4058 ACM Puzzles dp(插头)
题意:给出3*n(n#include#include#include#include#include#include#includeusing namespace std;#define all(x) (x).begin(), (x).end()#define for0(a, n) for (int (a) = 0; (a) < (n
2016-07-18 21:47:08 449
原创 CF 190D. Non-Secret Cypher
D. Non-Secret Cyphertime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputBerland starts to seize the initiative on the
2016-07-18 19:17:18 559
原创 Live Archive 3177 - Beijing Guards 二分+贪心
题意:给出n个人站一圈,第i个人需要a[i]种礼物,每种礼物都有无限多,要求相邻二人不能有重复种类的礼物。问最少需要准备多少种礼物。(n解法:首先想到了模拟,然后可以发现如果不站成圈,那么所求值是任意两个相邻的人所需要的礼物种类之和的最小值。后来书上讲的我就没想到了,即使战成一个环,如果n为偶数,那么答案与站成一排相同,细想确实如此。如果n为奇数,就要(着重
2016-07-17 21:08:11 376
原创 Live Archive 3902 Network 树 贪心
题意:给出小于等于1000个结点的树,叶子结点为客户端,其他结点为服务器。给出点S,代表只有服务器S安装了某项服务,给出距离K,代表每个客户端在不超过K的距离范围内必须有一个安装了该服务的服务器。问至少还有多少服务器需要安装该服务?解法:之前想的是DP,看了解法感觉想麻烦了,因为了没有分析性质。不过有一点想对了,因为子树之间互相关联,不能考虑某个服务器安装或者不安装服务。考虑的落脚点是
2016-07-17 15:14:44 254
原创 uva 10572 Black & White 插头dp
题意:给出一个m*n的棋盘,(2使得白色格子只有一个连通分量,黑色格子也只有一个连通分量,并且不能出现2*2的矩形满足内部4个格子同色。问涂色方法数。如果答案>0,输出任意一种涂色方案。解法:轮廓线上的动态规划,我学着书上写就已经很累了。#include#include#include#include#include#include#include#inc
2016-07-16 22:43:53 1308
原创 Live Archive 3620 - Manhattan Wiring dp(插头)
题意:给出一个n*m的网格,每个格子上有1个数字:0/1/2/3。0代表空白区域,1代表障碍。现在需要用线将两个2连接,两个3连接。且两线不相交,问最短连线。关键:每个格子无非11种情况:空白不连线、上下、左右、上左、上右、下左、下右、上、下、左、右。学着书上写了一发。#include#include#include#include#include#inc
2016-07-15 08:31:04 704
原创 hdu 4197 Popping Balloons 环状区间选点
题意:给出n个球的圆心坐标和半径大小,从原点扔飞镖,求最小飞镖数使刺破所有球。(飞镖是射线,球可以穿透,没有球包含原点)解法:n个球对应n个角度区间,然后这是一个(-PI,PI]内的环状区间选点问题,要求选最少的点,使之覆盖所有区间。利用2tan()求出圆心的辐角,然后区间的左右端点是圆心的辐角-+两切线夹角的半角(asin()可求,(0,PI/2])环状问题,
2016-07-12 08:01:04 488
原创 uvaLive 3401 Colored Cubes 暴力
题意:给出n个立方体,(n解法:暴力枚举,难在编写程序。一个立方体有24个姿势,因为上面有6中可能,难后前面又有4中可能,故有24种可能。现在让第一个立方体任选一种姿势,然后枚举其他立方体的姿势,然后在姿势不变的情况下涂色,求最少涂色数。对于每一个面,找出n个立方体中最多的颜色color,它的数量为cnt[color],然后所有立方体的这个面共需要重涂n-cnt[color
2016-07-11 16:48:19 408
原创 uva 11270 Tiling Dominoes 轮廓线DP
题意:给出一个n*m的棋盘(n*m解: 若n 从上到下,从左往右,以每个格子为阶段,枚举能够达到该状态的前驱,进行状态转移。实际铺设过程中该位置有几种情况: 1.不铺:如果该位置的上一层对应位置不为空(该层左边随意)2.左铺:如果前一位置为空,并且上层的该位置不为空。3.上铺:如果上层该位置为空(该层左边随意,会被底下的层处理掉
2016-07-11 11:01:52 549
原创 poj 3494 Largest Submatrix of All 1’s 单调栈/DP迭代法
题意:给出一个m*n的01矩阵,问在系数全为1的子矩阵中 系数和的最大值。解法:DP中的迭代法,或者单调栈。不论哪种方法核心都是对于每个高度为h的矩形,找到最左高度大于等于它的位置,和最右的位置。#include#include#include#include#include#include#includeusing namespace std;#de
2016-07-10 23:56:09 1058
原创 hdu 4844 公路巡逻 dp(略难)
公路巡逻Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 89 Accepted Submission(s): 7Problem Description 在一条没有分岔的高速公路上有n个关口,相邻
2016-07-10 10:15:57 902
原创 CF 24 D. Broken robot dp(概率,高斯消元)
D. Broken robottime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou received as a gift a very clever robot
2016-07-09 15:52:42 412
原创 poj 2152 Fire dp 树形dp+暴力 ★★
FireTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 1402 Accepted: 747DescriptionCountry Z has N cities, which are numbered from 1 to N. Cities are co
2016-07-08 19:48:14 615
原创 hdu 4821 滑动窗口+字符串哈希
StringTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2509 Accepted Submission(s): 753Problem DescriptionGiven a string S and
2016-07-08 14:11:13 788
原创 hdu 3866 Moonfang's Birthday 排序?贪心?二分?思维?
Moonfang's BirthdayTime Limit: 5000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1034 Accepted Submission(s): 410Problem DescriptionIt's Mo
2016-07-08 09:11:38 433
原创 poj 1681 Painter's Problem 高斯消元 枚举自由变元
Painter's ProblemTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 5598 Accepted: 2705DescriptionThere is a square wall which is made of n*n small squar
2016-07-07 20:36:53 500
原创 poj 1222 EXTENDED LIGHTS OUT 高斯消元 异或方程
EXTENDED LIGHTS OUTTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 8915 Accepted: 5781DescriptionIn an extended version of the game Lights Out, is a p
2016-07-07 20:15:30 296
原创 poj 3071 Football dp(概率)
题意:给出n,2^n个队伍进行比赛。每轮两两相邻的队伍进行比赛,淘汰一半的队伍。进行n轮比赛直至剩下最后一队。 给出对战胜率表,问那支队伍赢的概率大。(n解: 比赛轮数就是个天然的"序",dp[i][x]代表进行了i轮比赛后,x队还未被淘汰的概率。让编号从0开始,用位运算处理非常方便。FootballTime Limit: 1000MS
2016-07-06 11:25:42 252
原创 hdu 2333 Assemble 二分
题意:一个人拿着一定的钱数要配置一台电脑,现在给出各个部件,每个部件有多个产品,只需要选用一个产品。每个产品都有话费和质量(quality)。电脑的质量取决于其中质量最低部件。问能够组成电脑的最大质量。解法:二分。我一开始不是这样想的。别人告诉我二分来写的。我一开始误入歧途,认为是需要优化的分组背包。但数据实在太多太强,不是TLE就是MLE。现在想想当时还是太草率了,首先比
2016-07-05 22:23:40 471
原创 Codeforces 16E Fish dp(概率)
题目链接:点击打开链接题意:池中有n条鱼,每天会有两条鱼相遇,任意两条鱼两两相遇的概率相等,如果两条鱼相遇,其中一条一定会被吃掉,给出所有两两相遇时吃与被吃的概率,求每条鱼存活的概率。状态转移方程: dp[s2]=∑(win[j][i]*dp[s]/C[num][2]); i∈s
2016-07-05 10:29:34 450
原创 uva 11584 Partitioning by Palindromes dp(最少回文串划分)
题目大意:给一个字符串, 要求把它分割成若干个子串,使得每个子串都是回文串。问最少可以分割成多少个。分析:dp[i]表示以i结尾的串最少可以分割的串数。dp[i] = min{ dp[j-1]+1, 串[j,i]是回文串&&1加上预处理 时间复杂度O(n^2)#include#include#include#include#inc
2016-07-04 19:58:04 497
原创 uva 437 The Tower of Babylon 矩形嵌套模型,DAG最长路,水
比较两个blocks就是比较它们的底,且每一种block只会用一次,因此把一个block变为3个。#include#include#include#include#include#include#includeusing namespace std;#define all(x) (x).begin(), (x).end()#define for0(a, n)
2016-07-04 19:26:13 588
原创 poj 1160 Post Office dp(序列划分,数学公式, 中偏弱,可优化)
题意:给出v个村庄,p个邮局,在村庄内建邮局,使得所有村庄到其最近邮局的距离之和最小。Post OfficeTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 18408 Accepted: 9898DescriptionThere is a
2016-07-04 10:30:23 630
原创 uva 1626 - Brackets sequence dp(区间,坑题, 难度适中,难ac)
题目这个题输入很坑,首先各种空格输入输出,然后样例还只有一组。输入:先输入T,表示有T组数据。 然后每组有两行组成,第一行是空串,第二行是字符串(可能是空串)。输出:除了答案之外,答案与答案之间要空一行。#include#include#include#include#include#include#includeu
2016-07-03 22:55:59 353
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人