- 博客(16)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 Codeforces Round #190 (Div. 2前三题)
A. Ciel and Robot答案不唯一,按规律直接输出就可以了。#include#include#includeusing namespace std;int main(){ int n,m; while(~scanf("%d%d",&n,&m)) { if(n<=m) { prin
2013-06-29 11:43:19 844 2
原创 hdu 1067 Gap bfs+hash
#include#include#include#include#includeusing namespace std;#define MAXN 1000007struct node{ int dis; __int64 m[5][9]; int posx[5]; int pos
2013-06-28 00:48:41 1347 1
原创 hdu 1026 (优先队列+bfs)
#include#include#include#includeusing namespace std;struct node{ int dis; int x; int y; int pre,id,flag; bool operator <(node a) const { return dis>a.dis; }}data[500000];i
2013-06-28 00:19:09 602
原创 hdu 3631 floyd最短路
题意:给定一张图,再给出一系列的操作,0 x表示标记x点,1 x y表示求x,y的最短路(注意,这条路径上的所有点必须都要被标记过)解法:保存地图后,每标记一个点,就对这一个点进行松弛。注意:1、可能有重边,读入的时候要处理一下2、要用longlong存map,inf设为0x3f3f3f3f是不够的#include#include#include#includeusin
2013-06-23 13:06:51 805 1
原创 hdu 1539 dfs
很蛋疼的题目,题目要求上说整数不会超过6位,但hdu上的数据实际会大于6位,所以应该用字符串来储存。poj上这题可以用整数存,能过。#include#include#include#include#includeusing namespace std;vector v;vector tmp;char b[100];int a,ans,l;int tot;int MIN
2013-06-22 22:18:08 894 2
原创 hdu 4431 Mahjong (模拟,枚举+dfs)
2012ACM天津赛区的一道题目。很复杂的模拟,没有完全想清楚前别着急敲。我重写了2次代码才过。。。题意不难理解,思路也很容易得到,枚举所有的牌,看加上这一张牌后能不能胡。胡牌有3种规则:1、 7对, 这种情况的判断只需要判断所有的牌是不是0或者2,出现其他情况直接false2、十三幺,只要判断这十三张牌都出现过,并且没有出现过其他牌。3、平胡,1个对子+4个组合(
2013-06-21 19:23:53 817 1
原创 hdu 2955 Robberies
题意:Roy 要去抢银行,给你一个Roy 的被抓概率,再给出N个银行的钱和抓捕概率。求能抢的最大的钱数。由概率的知识可知,要求被抓概率,需要先求反面,也就是逃脱的概率,只有逃脱的概率才能连乘。构造dp[i]表示抢到i数量的钱最大的逃脱概率。转移方程 dp[i]=max(dp[i],dp[i-cost[j]]*p[j]); cost[j]代表第j个银行的钱,p[j]代表第j个银
2013-06-18 00:14:30 598
原创 HDU 1010 Tempter of the Bone
题意,求从S到D正好T步能不能到。加一个奇偶剪枝,只有当起点终点的曼哈顿距离和T的奇偶性相同时,才需要搜索,否则直接输出NO。#include#include#include#include#include#includeusing namespace std;int dx[]={-1,1,0,0};int dy[]={0,0,-1,1};int map[10][10];
2013-06-17 23:46:45 674 2
原创 hdu 1560 DNA sequence(迭代加深搜索)
题意:找到一个最短的序列,使得输入的所有序列都是这个序列的子序列。输出最短序列的长度DNA sequenceTime Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 687 Accepted Submission(
2013-06-14 15:28:40 1930 1
原创 hdu 3249 (Selecting Frames) DP
题意:给你N个线段,每个线段有一个自己pole,要选择尽量多的线段。满足 1.线段之间没有相交区间,但是可以紧贴着。 2.当选择了第i个线段时,必须让第i个的线段的pole在第i个线段上。(实际上就是规定了线段放置的区间)解题:DP[i]表示选择了i个线段时,右端点的坐标。每次有选或者不选2种决策,所以得到方程dp[top]=min( dp[
2013-06-13 20:20:04 807
原创 hdu 3244(Inviting Friends)
二分人数。判断的时候是一个完全背包,求出得到每种原料需要的数目的最小的价钱,然后相加,判断此时的钱和m的大小,继续二分。#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3fstruct node{ int x,y,s[2],p[2];}a[105];int dp[8
2013-06-12 17:10:31 797
原创 uvaoj 321 - The New Villa
传送:点击打开链接一道容易题,弄了我好久啊,各种粗心,郁闷死了!题意:给三个整数,分别表示:房间数,图的连接情况,每个房间能控制的灯。输出从起点到终点的方式。搜索很好理解,关键是判重。可以将灯的情况抽象成01串,人处在的房间号放在房间数+1的位置例如第一个样例 3个房间初始就可以用 1 0 0 1表示,终点就是 0 0 1 3再例如10 起点就是 1 0 0 0 0
2013-06-09 17:28:39 708
原创 hdu 1166 线段树
初次接触线段树,网上看了很多人的博客才慢慢了解了,还在学习ing从最简单的单点更新开始#include#include#includeusing namespace std;#define MAXN 50010struct node{ int l,r,mid; int sum;}tree[MAXN*4];int ans;void build(int l,
2013-06-07 15:54:42 587
原创 POJ1041 John's trip
1、并查集判断图是否联通;2、只有度数都为偶数才能构成欧拉回路;3、满足1,2之后dfs搜索出一条路径,注意边从小到大搜索。#include#include#include#include#includeusing namespace std;int g[2000][2]; //g[i][0],g[i][1]表示编号i的边的左右连接点int set[50];cha
2013-06-06 15:34:39 550
原创 hdu 3368 Reversi
挺像搜索的,对每个*点,找它的八个方向,满足游戏规则就+1,最后保留最大的。#include#include#includeusing namespace std;char map[10][10];int direct[8][2]={{-1,0},{1,0},{0,-1},{0,1},{-1,-1},{-1,1},{1,-1},{1,1}};int ans;int tmp;bo
2013-06-05 20:53:41 677
原创 hdu1195 Open the Lock
双向搜索,直接把字符串转换成整型来判重。。。代码有点冗余。。。#include#include#include#include#include#include#includeusing namespace std;bool vis1[10005];bool vis2[10005];char b[5];inline int cal(char *a){ int
2013-06-05 16:32:15 659
为什么我的sublime的Preferences变成了灰色不可选
2016-07-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人