• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
tmeteorj
Nothing is so big that it is impossible to get over, and hurt only serves to make us stronger. 没有什么事是大到无法战胜的,痛苦也只会让我们变得更加坚强。
博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 21 下一页

2012年10月9日

POJ 2724
摘要: 题意:m个长度为n的2进制数,可能某一位是*代替(代表*=1和*=0都被包含了)。要求用最少的另外一些二进制数(也可以某一位被*代替)将原来的那些覆盖(且只能覆盖一次),且要求不能覆盖原本不存在的二进制数。题解:由于*可以覆盖两个二进制数,所以*用的最大的时候就是题目要求的解。如果两个二进制数只相差一位,那么这两个二进制数就可以用一个带*的二进制数就可以覆盖了,由于要求不能覆盖两次,实际上就成了求二分图最大匹配。最后匹配可以覆盖掉ret*2个,剩下的就只能用单一不含*的去覆盖了。View Code 1 #include<cstdio> 2 #include<cstring&g 阅读全文
posted @ 2012-10-09 08:39 tmeteorj 阅读(448) 评论(0) 推荐(0)
 
 

2012年10月8日

POJ 2137
摘要: 题意:n(<=100)头牛各自有s(<=40)个自己喜欢的地方,FJ要把它们用绳子连成一个圈,但是每头牛都要在自己喜欢的地方之一才行,问FJ最少要用多长的绳子才行。题解:有于数据都比较小,所以可以dp[i][j][k]代表第i头牛在j处吃草时第1头牛在k处的最小绳子,最后答案等于dp[n][i][j]+dist(0,j,n,i)的最小值。转移是s的复杂度,最后就是O(n*s^3)View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include< 阅读全文
posted @ 2012-10-08 21:27 tmeteorj 阅读(389) 评论(8) 推荐(0)
 
POJ 1354
摘要: 题意:n个箱子,都由一把唯一的钥匙可以打开它。现在将每把钥匙分别放进这n个箱子中,上锁,然后撬开第一二个箱子,然后用这里面的钥匙接着打开,如此反复,如果能将所有箱子全打开,那么这就是一个好的放法。问有多少好的放法。题解:实际就是求将n个元素分为2个轮换有多少种,且一种含1,一种含2。dp[i]代表i个箱子的放法数,现在新加入一个箱子,如果让它和含1的箱子的轮换群组成新轮换有a种,与含2的有b中,显然,a+b=i的,因为组成新的轮换就是将原来的轮换中的某个数与它交换过来,有多少位就有多少种。于是预处理200个,再加个高精就可以了。View Code 1 import java.math.*; . 阅读全文
posted @ 2012-10-08 20:53 tmeteorj 阅读(232) 评论(0) 推荐(0)
 
POJ 2106
摘要: 题意:bool表达式求值,V:true;F:false题解:堆栈+优先级判定View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<cctype> 5 using namespace std; 6 const int N=1000; 7 char comp(char a,char b) 8 { 9 if(b=='\0')10 {11 if(a=='\0')12 return '=';13 el 阅读全文
posted @ 2012-10-08 20:11 tmeteorj 阅读(356) 评论(0) 推荐(0)
 
POJ 1034
摘要: 题意:主人带狗去散步,主人走n个点,狗在每个点都会与主人碰头,但其余时候都是各自溜达,除此之外,狗还会去找一些有趣的地方(共m个),每次离开主人狗最多去一个有趣的地方。狗的速度最快是人的两倍,求使得狗到达最多有趣点的方法。题解:对于人从第i个点到第i+1个点,这条路作为三角形的一边c,然后遍历其他点,若j与这两个点组成的边即为a,b如果a+b<=c则g[i][j]=true,然后做二分图最大匹配,就是狗最多能到的点。View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 阅读全文
posted @ 2012-10-08 20:09 tmeteorj 阅读(382) 评论(0) 推荐(0)
 
POJ 1057
摘要: 题意:模拟数据库系统,给你文件及其对应关系,画出图形。以f开头的是文件,以d开头的是文件夹,']'代表文件夹结束,'*'代表样例结束,'#'代表输入结束。题解:模拟。View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<vector> 5 #include<string> 6 using namespace std; 7 const int N=10000; 8 struct d 阅读全文
posted @ 2012-10-08 18:55 tmeteorj 阅读(364) 评论(0) 推荐(0)
 
POJ 3614
摘要: 题意:c头牛日光浴,有l个区域可以选择。每头牛需要的光照强度区间告诉了,然后每个区域的光强以及可以承载的牛数告诉了,求最大满足的牛数量。题解:最大流。对于S到每头牛建一条流量为1的边,然后每头牛到它能到的区域建一条流量为1的边,每个区域到T建一条流量为该区域承载牛数量的边。View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 const int N=6000,M=1000000; 6 const int inff=1< 阅读全文
posted @ 2012-10-08 18:30 tmeteorj 阅读(617) 评论(0) 推荐(0)
 
POJ 1769
摘要: 题意:用m个区间去覆盖1~n,求最小使用数。题解:线段树,覆盖[l,r]:找出线段树上含了l的最小的区间数x,让线段树[l,r]区间取它本身与x的最小值,最后在求n处的最小值即可,复杂度O(mlogn)。开始的时候还想pushdown等操作,结果超时,后来一算发现直接暴力线段树更好。View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 const int N=50005,M=500005; 6 const int inf= 阅读全文
posted @ 2012-10-08 18:19 tmeteorj 阅读(496) 评论(2) 推荐(0)
 
 

2012年10月7日

POJ 3193
摘要: 题意:判断一些句子是不是另一些句子的前缀,并统计是的个数。题解:将被匹配串读入结构体中排序,然后对于每个匹配串,通过二分在结构体中找。View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 const int M=1005,N=10005; 6 struct data 7 { 8 char s[100]; 9 bool operator<(const data &ne)const10 {11 return st 阅读全文
posted @ 2012-10-07 16:48 tmeteorj 阅读(243) 评论(0) 推荐(0)
 
POJ 1309
摘要: 题意:m个椰子,n个人,使得这n个人按次序醒来后能够将剩余的椰子分成n份多1,然后将1扔给猴子,自己拿走n份中的一份(这里的n一旦确定就不会改变),n次之后,剩余的椰子还能被n整除,求最大满足条件的n。题解:考虑第一次m%n==1,所以对m-1分解质因数,即m-1的所有非1的约数都能在第一次分椰子的时候满足条件,然后枚举所有m-1的约数,最多2000多个,找出最大的。View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 c 阅读全文
posted @ 2012-10-07 16:07 tmeteorj 阅读(325) 评论(0) 推荐(0)
 
 
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 21 下一页

公告


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3