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

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)
 
 

公告


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