自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 问答 (3)
  • 收藏
  • 关注

原创 hdu 3790 最短路径问题 最短路Dijkstra

做图论的都是上辈子折翼的天使。。。有点难想,但又明确的思路,程序很好打清除所有点的标号设d[0]=0,其他d[i]=INF循环n次{     在所以未标号结点中,选出d值最小的节点x     标记节点x   对于从x出发的所有边(x,y), 更新d[y]=min(d[y],d[x]+w(x,y));}错了几次第一次把路程和金钱分开处理了,很快查出

2015-07-31 21:08:06 429

原创 hdu 2489 Minimal Ratio Tree 最小生成树kruskal

这道题在大一团队训练赛上见过,很多人一次过了,是一道dfs+最小生成树,王昊天学长讲的时候也是三言两语带过,我有点不确定哈理工的水平什么·时候这么高了。。组合dfs取出m个点,用这m个点构建最小生成树,这m个点的权值和是一定的,故边权值最小,则比才会最小;思路:在Edge中选最小的,若这两点有一个不是m个点中的,就不把它放入树中;以为自己过不了,结果一次ac;这道题有很多人卡在权值比上

2015-07-30 07:28:22 492

原创 hdu 1102 Constructing Roads 最小生成树Kruskal

这原本是最小生成树prim部分的题,但感觉kruskal好用,就用kruskal 打了这道题题意有点变扭,修路,使所有村庄连通,使修路的街道总长度最小;原本还以为使街道的总长度最小,但案例过不了才发觉使已经修了的路的权值为0,其他路的权值当然为路的长度,模板题代码:#include#include#includeusing namespace std;int n;cons

2015-07-30 07:11:23 375

原创 poj 1797 Heavy Transportation 最小生成树 最大生成树

题意是说,找出使点1到点n的连通的所有路径上权值最小边的最大值,即有路能连通所有点,这路上的最大权值为x,找出最小的x;这是最小生成树的模板题;可以按照最小生成树kruskal的贪心思想,依次寻找图中从小到大的边,则加入树的权值从小到大,直到1点和n点全部连通,此时假如树的边的权值即为解代码:代码中的有关r数组的部分可以不加。因为没打cnt==n-1 break; wr好几次

2015-07-30 06:56:38 476

原创 hdu 1285 确定比赛名次 拓扑排序模板题 优先队列

因为近期比赛有很多图论,但我不会,所以从头开始学,除了bfs判断连通外,这是第一个重点吧,以后都会用到拓扑排序主要解决的问题是  比赛名次构建的有向无环图,若有环,则不存在拓扑排序;主要是根据入度和队列来解决的;若输出序编号小的排前边,则用优先队列;代码:#include#include#include#includeusing namespace std;const

2015-07-30 06:35:59 504

原创 hdu 1941 Justice League 无向完全图

就是有一些人和一些关系,从中选出一些人,他们与联盟中其他人都有关系,即构成完全图,剩下的其他人不能有一个关系首先,度为0和1的应该先去掉,同时标记(与去掉的点)相关联的点为不可去掉,度同时-1,否则去掉的集合里就会出现关系;继续搜索度更高的点,把可去的去掉,标记与其关联的点为不可去重复上述操作,直到没有点可以去掉,此时判断是否为完全图,即不可去点的个数==min(deg[u]+1),u

2015-07-26 14:34:42 980

原创 hdu 1937 Finding Seats 尺取法

这道题主要就是选一个对角矩阵,使得其内的可用座位》=k,求满足这个条件的最小矩阵面积三重循环加优化,最内层为尺取法,复杂度大概为300;故空间复杂度为300^3,不会超时,同时第三层内的搜索与判断都应为加法级别的;第一次打的时候判断一个区域内的可用座位是暴力搜索,最麻烦的时候复杂度达到300^5,。。超时看了其他人的代码才明白;先进行一个对矩阵内可用座位的预处理,复杂度为3

2015-07-25 22:58:10 953

原创 hdu 1936 Emoticons :-)

比赛时这道题并没多想,当高放说是区间覆盖贪心的时候,已崩溃,区间贪心前两天刚做过,poj 1328,还打了博客,结果比赛时就是没想到。。这道题算是一道稍微麻烦点。。题意:其实就是对每一行分别使用贪心,最后把修改的点的和加起来参考链接:http://www.cnblogs.com/cheater/p/4675043.html我和参考中的贪心代码有点不同,他是从后往前搜,排序是x.

2015-07-25 22:30:46 539

转载 hdu 2892 area 有向面积 三角剖分运用 模板题

第一次见到这种题,有想法,不会打。。。代码太长了,有几个链接不错http://www.xuebuyuan.com/1749999.html    //个人认为这个讲的最详细http://blog.csdn.net/ch2010091/article/details/7786450ac代码:#include #include #include using na

2015-07-24 20:13:02 455

转载 hdu 2898 旋转 三维空间一点绕一轴旋转后坐标 几何

参考链接:http://m.blog.csdn.net/blog/YJX_xx/24883665实用代码函数:#include#include#include#include#includeusing namespace std;float aa[4],bb[4];float theta;float c;float s;void Rotate_Point3D(flo

2015-07-24 19:04:13 1678

原创 hdu 1712 ACboy needs your help 简单组合dp

发觉dp真的好神奇,以前看0-1背包的代码真是茫茫然,现在能讲出个123来了;这道题看崔添翼大神的背包九讲中的组合背包代码:0-1背包也可以看刘汝佳的算法竞赛之入门经典271页#include#includeusing namespace std;int a[110][110];int dp[110];int main(){ int n,m; while

2015-07-23 21:56:36 360

原创 hdu 1710 Binary Tree Traversals 二叉树的遍历

参考链接:http://www.cnblogs.com/jiangjing/archive/2013/01/14/2860163.html根据前序与中序推后序大题思路:void dfs(){   lchild();//左孩子   rchild();//右孩子   dateBT();//输出根}细节理解:i的作用找出根在中序的位置,推出i,从而

2015-07-23 21:33:11 512

原创 hdu 1709 The Balance

我感觉这种题正是现在的我应该做的,感觉学到东西了,而不是坑的无奈比赛时我就算看了估计也做不出来,压根不会想到dp那;这个题是一个基础0-1dp吧,许多人用了母函数,但我基本不知道母函数是什么,无奈思路:dp[i][j]表示前i个物体是否能测量物体j,是为true,反为false;状态转移方程:dp[i-1][j]==1,则dp[i][j+a[i]]=1;dp[i][abs(

2015-07-22 21:50:12 338

转载 zoj 3741 Eternal Reality DP

参考链接:http://blog.csdn.net/night_raven/article/details/18523473思路:学园都市内有等级从0-5的能力者,先给定你的等级(0--5),给出n个你的对手Ai(0--6),只有你的等级大于等于Ai你才能胜利并且拿到一分,另外你还可以开挂,在第i回合使用外挂,[I,I+X-1]回合里你等等级+1(如果你是LV5,开挂后还是LV5),并且[

2015-07-21 22:23:25 399

原创 zoj 3745 Salary Increasing 哈希

四个小时,各种方法打,各种超时。。最后同学提醒是哈希才恍然大悟,,自己真是太水了结果自己再打时还是因为一点没注意到wr了两次。。注意t[i+c]+=t[i],不是t[i+c]=t[i];代码:#include#include#includeusing namespace std;int t[200010]={0};int main(){ int a,b;

2015-07-21 19:19:15 446

原创 poj 2993 Emag eht htiw Em Pleh 暑假第11题 模拟 大水

若有疑问,参考2996题;题目很无语代码如下:#include#include#includeusing namespace std;char c[10][10];char aa[100];char bb[100];char str[20][40];int main(){ string a,b; while(cin>>a) { cin>>

2015-07-20 12:47:39 546

原创 poj 2996 Help Me with the Game 暑假第10题 模拟 大水

对于这种题,真心无语,看题多半个小时,打码20分钟就打完了。。注意> 1.行号是从下往上计数的,最上面的行是8> 2.对于行号不同的输出顺序,白色的是行号小的先输出,黑色的则相反。行号相同的都是列小先输出。。图中有P  和  p之分-- 。--;代码:#includeusing namespace std;char a[20][40];char b[10][10]

2015-07-20 10:40:05 475

原创 poj 1573 Robot Motion 暑假训练第9题 模拟 大水题

这道题以前做过。。所以打的时候很顺利,不到20分钟就打完了,3月份的代码有2600多B,现在只有1200多代码:#include#include#include#include#includeusing namespace std;map s;int n,m,k,kk;int kan=1;int p,q,x,y;char a[12][12];int visit[12][1

2015-07-19 18:02:29 397

原创 poj 2632Crashing Robots 暑假第8题 大模拟,水题

对于这种题,我只能说,恶心到家了题意还得根据测试数据来推。。。有一个撞墙或碰上其他机器人,就断开判断,继续输入数据,最后输出结果。代码:#include#include#include#include#includeusing namespace std;map s;int a,b;int n,m;int i,j,p,q;char dri[5]={'N','E

2015-07-19 16:57:44 501

原创 poj 1068 Parencodings 大模拟 水题 暑假第7题

这是一道水题,看清题意就可以码出来代码:#includeusing namespace std;int a[1000];char b[1000];int main(){ int t; while(cin>>t) { while(t--) { int n; cin>>n;

2015-07-13 22:51:51 432

原创 poj Tautology 构造法 递归 位运算 暑假第6题

这两天考试,一直没来得及写。。看这道题的时候,我还是有点懵,看不懂,看到其他人讲解,才明白的p,q,r,s,t,这5个字母为小写字母,会用到islower函数K,A,N,C,E,这代表着运算符,且,或,非等每个小写字母会有两种状态0,1;输入一个字符串,判断他代表的是否(无论小写字母代表什么)都为真,若为假,输出not;因为5个字母,每种两种状态,0,1,5^2,一共3

2015-07-13 13:29:23 475

原创 poj Y2K Accounting Bug 贪心 暑假第五题

许多人说看不出与贪心什么关系,我笑了。打第一次时思路错了,分析的时候才看出是贪心,是最优子问题;拿第二组举例吧375 743正确的1到5月应该是  375 375 375 -743 -7431-5月满足亏损当到6月时,为满足亏损,其实就是把一月的数据移到6月,其他月都一样。无论1-5月的数据怎么排,其实1-5月的盈利或亏损都是一定的。都是375*3-743*2

2015-07-08 17:44:11 573

原创 poj 2109 Power of Cryptography 贪心 暑假第四题

看了这道题的discuss,就想笑了,说是专坑不看评论的老手们,许多人打了二分+高精度,wr了,但最后一句话ac了。。。这题怎么能分到贪心,我也是醉了。 1101,19 我个人认为最保险的思路应该是log:    k^n=p;   ln(k)=ln(p)/n;   k=exp(   ln(p)/n  );代码如下:#include#include#inclu

2015-07-07 23:41:33 464

原创 poj 1328 Radar Installation 贪心 暑假第三题

去年大一的时候,看到这题,真心感觉自己不会,没思路,今天顺手就打出来了。。下面的思路是其他博主写的的,拿过来借鉴思路:该题题意是为了求出能够覆盖所有岛屿的最小雷达数目,每个小岛对应x轴上的一个区间,在这个区间内的任何一个点放置雷达,则可以覆盖该小岛,区间范围的计算用[x-sqrt(d*d-y*y),x+sqrt(d*d-y*y)];这样,问题即转化为已知一定数量的区间,求最小数量的点,使得

2015-07-06 19:45:43 523

原创 poj 2965 The Pilots Brothers' refrigerator 普通dfs 超时 暑假第二题

代码://#include#include#include//using namespace std;int step=0;int visit[5][5]= {0};char a[5][5];bool b[5][5];bool c[5][5];int k=0;struct Str{ int x; int y;};Str d[50];void roll

2015-07-06 10:01:31 403

原创 poj 2965 The Pilots Brothers' refrigerator 高斯消元法 暑假第二题

文章中的名词理解;1.翻转:+到-或-到+2。操作:即为对其行和列的点翻转1.首先得明白,对一个点只能进行奇次操作,即操作一次。取反原理2.证明:要使一个为'+'的符号变为'-',必须其相应的行和列的操作数为奇数;可以证明,如果'+'位置对应的行和列上每一个位置都进行一次操作,则整个图只有这一'+'位置的符号改变,其余都不会改变.思路如下:红色点将为接下来进行的操作点假如为

2015-07-02 21:26:54 492

原创 poj 2965 The Pilots Brothers' refrigerator 枚举+组合 暑假第二题

其实和  poj 1753样,甚至更简单,套用1753代码打的,并优化了一部分;具体参考:http://blog.csdn.net/sholck222/article/details/46695087但在这道题中,可能限制时间交紧,相同代码提交两次才过,第一次超时,第二次险过,953ms;这道题还有其他解法,如高斯解法,枚举+dfs,这两份代码及简析明天会发上来枚举+组合的代码:

2015-07-02 16:31:31 521

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除