- 博客(29)
- 资源 (1)
- 收藏
- 关注
原创 poj 3648 Wedding
每对夫妻恰有一人坐在新娘对面,两个关系不正常的人不能都在新娘对面问,是否有解#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int MAXN = 100;struct twosat{ i
2014-11-30 21:56:48 1219
原创 poj 3207 Ikki's Story IV - Panda's Trick
圆上依次从0到n-1标记点,给出m个边,问当这m个边连好之后,是否有相交的边有园外园内之分……2-SAT#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int MAXN = 510;s
2014-11-30 19:41:54 878
原创 hdu 3622 Bomb Game
题意:给n对炸弹可以放置的位置(每个位置为一个二维平面上的点),每次放置炸弹是时只能选择这一对中的其中一个点,每个炸弹爆炸的范围半径都一样,控制爆炸的半径使得所有的爆炸范围都不相交(可以相切),求解这个最大半径。思路:二分答案,然后建图,用2-SAT判断方案是否可行。#include#include#include#include#include#include#i
2014-11-29 17:09:46 843
原创 UVA - 10285 Longest Run on a Snowboard
从任意点出发,走出一条严格递减的序列出来,看最长序列是多长#include#include#include#include#include#include#include#include#include#includeusing namespace std;int a[110][110];int dp[110][110];int dx[4]={0,0,-1,1};
2014-11-21 20:38:10 925
原创 UVA 10465 Homer Simpson
在t分钟内吃两种耗时不同的汉堡,首先保证耗时最多,然后保证汉堡吃最多,最后剩下的时间喝酒#include#include#include#include#include#include#include#include#include#includeusing namespace std;int main(){ int a[2]; int dp[2][10010];
2014-11-21 17:17:52 966
原创 UVA - 531 Compromise
两段英文,比较最多有多少个单词连续一样,并将其输出……由于要求从头打出……dfs一发把……#include#include#include#include#include#include#include#include#include#includeusing namespace std;bool flag;int dp[110][110];string a[
2014-11-21 13:25:10 1157
原创 UVA 10130 - SuperSale
一个人只能在里面选一件,物品有多件,也就是说不同的人可以选同一个物品,多个0-1背包相加。#include#include#include#include#include#include#include#include#include#includeusing namespace std;struct node{ int p,w;}a[1010];int main
2014-11-20 18:08:16 1221
原创 hdu 4770 Lights Against Dudely
用离中心距离为1的L去覆盖最多十五个点,#不能被覆盖,可以覆盖的地方可以越界,有一个L可以是旋转0,90,180,270去覆盖的问,最少要多少个L可以实现全覆盖。枚举可旋转的L所在的位置,然后直接爆搜……没想到直接A了……数据比较弱么……#include#include#include#include#include#include#include#include
2014-11-17 19:18:10 1051
原创 hdu4771 Stealing Harry Potter's Precious
注意……可能会爆内存……如果是直接爆搜的话……把队列存的元素减少就行了……#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int inf=(1<<30)-1+(1<<30);int goal;cha
2014-11-17 14:02:12 938
原创 hdu5094 Maze
……就是爬管道……还好内存给的多……不然就不会做了……#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int inf=(1<<31)-1;int dp[51][51][1<<10];int ro
2014-11-16 18:29:03 1060
原创 uva live 12846 A Daisy Puzzle Game
如果下一个状态有必败,那么此时状态一定是必胜,否则此时状态一定是必败状压DP#include#include#include#include#include#include#include#include#include#includeusing namespace std;int dp[1<<20];int n;int dfs(int state){
2014-11-14 21:47:26 997
原创 hdu 4778 Gems Fight!
第一次写状压dp……题意:http://blog.csdn.net/dyx404514/article/details/15506601状压dp+博弈吧……#include#include#include#include#include#include#include#include#include#includeusing namespace std;int d
2014-11-14 17:47:58 942
原创 hdu 4773 Problem of Apollonius
莫名其妙就AC了……圆的反演……神马是反演?快去恶补奥数……#include#include#include#include#include#include#include#include#include#includeusing namespace std;const double pi=acos(-1.0);const double eps=1e-9
2014-11-14 12:29:55 1421 2
原创 hdu 5031 Lines 爆搜
其实嘞,这个线可以只延伸一端然后嘞,爆搜一次就可以最后嘞,600-800ms过本弱就是弱啊,你来打我呀……#include#include#include#includeusing namespace std;int a[100][100];int n,m,ans;bool dfs(int step){ int i,j,t,ii,jj,x,y,cnt,tx
2014-11-12 18:52:51 1395
原创 uva 624 CD
01背包写成一维的好处是省内存,坏处是中间过程都没被保存,而这题要求打出路径如果直接写一维的然后标记,是不是有些本末倒置如果写记忆化搜索,我没想出来怎么写…… 也懒得想了,反正有现成的二维形式,二维的好处就是保存了路径所以很容易可以回溯出路径,其实这里如果写成一维的反而浪费了内存,因为你还要多开一个二维标记,所以说是本末倒置#in
2014-11-09 18:07:20 1112
原创 uva 348 Optimal Array Multiplication Sequence
这个括号输出要按照它的来才行……不是任意一个都可以的……
2014-11-08 20:48:25 782
原创 uva 562 Dividing coins
反正两个人,必定至少有一个人手里的硬币价值是小于或等于所有硬币价值之和的一半的那么我们就来扮演这个人,他的背包大小是硬币价值的一半,问,他能拿到的硬币价值的总和最大是多少?01背包#include#include#include#include#include#include#include#include#include#includeus
2014-11-07 20:03:41 854
原创 uva357 Let Me Count The Ways
注意PE……#include#include#include#include#include#include#include#include#include#includeusing namespace std;int coin[5]={1,5,10,25,50};long long dp[30010];int main(){ int i,j; dp[0]=1;
2014-11-07 16:59:57 1009
原创 uva-147 - Dollars
#include#include#include#include#include#include#include#include#include#includeusing namespace std;int coin[11]={10000,5000,2000,1000,500,200,100,50,20,10,5};long long dp[30010][20];long
2014-11-07 13:15:43 941
原创 uva10192-Vacation
#include#include#include#include#include#include#include#include#include#includeusing namespace std;int dp[110][110];int main(){ int i,j,n,m,cs=0; string a,b; while(getline(cin,a)) {
2014-11-07 13:14:39 979
转载 陈启峰-背包九讲
P01: 01背包问题题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。
2014-11-06 21:50:03 753
原创 UVA - 10066 The Twin Towers
最长公共子序列#include#include#include#include#include#include#include#include#include#includeusing namespace std;int a[110];int b[110];int dp[110][110];int dfs(int i,int j){ if(i<0||j<
2014-11-06 15:18:12 874
原创 UVA - 10131 Is Bigger Smarter?
DAG最长路……#include#include#include#include#include#include#include#include#include#includeusing namespace std;int tail;int head[1010];int dp[1010];struct Edge{ int to,next;}edge[10000
2014-11-06 14:57:20 1108
原创 UVA - 116 Unidirectional TSP
注意……可穿墙……#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int inf=1<<31;int a[20][110];int dp[20][110];int n,m,ans;int dfs(int
2014-11-06 12:14:52 1222
原创 UVA 10003 - Cutting Sticks
#include#include#include#include#include#include#include#include#include#includeusing namespace std;int a[100];int n;int dp[1010][1010];int dfs(int s,int e){ int i; if(dp[s][e]>-1)
2014-11-05 20:52:48 1035
原创 uva 674 - Coin Change
#include#include#include#include#include#include#include#include#include#includeusing namespace std;int dp[8000];int coin[5]={1,5,10,25,50};int main(){ int i,j,x; dp[0]=1; for(i=0;i<
2014-11-05 19:47:59 1066
原创 UVA - 10405 Longest Common Subsequence
#include#include#include#include#include#include#include#include#include#includeusing namespace std;int dp[1010][1010];int main(){ int i,j,n,m; string a,b; while(getline(cin,a)) { g
2014-11-05 18:51:43 1236
原创 UVA - 103 Stacking Boxes
#include#include#include#include#include#include#include#include#include#includeusing namespace std;int head[50];int tail;int dis[50];struct Edge{ int to,next;}edge[1000];void add(in
2014-11-05 18:29:45 989
原创 UVA - 111 History Grading
#include#include#includeusing namespace std;int dp[30][30];int ord[30];int stu[30];int main(){ //freopen("in","r",stdin); int n,i,j,t; cin>>n; for(i=1;i<=n;i++) { c
2014-11-04 16:24:13 1035
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人