
POJ
z岁月无声
这个作者很懒,什么都没留下…
展开
-
poj1664-放苹果
放苹果Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 35949 Accepted: 22216Description把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。Input第一行是测试数据的数目t(0 <= t <= 20)。以下...原创 2018-03-22 18:02:05 · 218 阅读 · 0 评论 -
POJ-3468-A Simple Problem with Integers(区间线段树模板题)
地址:http://poj.org/problem?id=3468思路:区间线段树模板题。。Code:#include<iostream>#include<cstdio>using namespace std;typedef long long LL;const int MAX_N=1e5+5;struct tree{ int l,r; L...原创 2019-06-07 13:41:12 · 173 阅读 · 0 评论 -
POJ-3258-River Hopscotch
地址:http://poj.org/problem?id=3258思路:二分答案,一开始我始终坚信可以用贪心来写,然后就思维固化了,完全没有去想二分。然后就一直wa...对于要求的答案ans, 0<=ans<=L,因此可以二分ans来求解,想到二分后实在是一发ACCode:#include<iostream>#include<algorithm...原创 2019-03-23 16:14:21 · 269 阅读 · 0 评论 -
POJ-1185 炮兵阵地
地址:http://poj.org/problem?id=1185思路:状态压缩DP,对每行的状态进行枚举,由于一个炮兵影响相邻两行,因此用 dp[i][j][k]来保存 第i行的状态为j,第 i-1行状态为k时的最大个数。Code :#include<iostream>#include<cstring>using namespace std;co...原创 2018-09-27 19:44:35 · 407 阅读 · 0 评论 -
POJ-3311 Hie with the Pie
地址:http://poj.org/problem?id=3311思路:状态压缩dp,dp[i][j]:表示在状态i以点j为结尾时的最小距离。状态i表示已经走过了点,对于n个点,一共有0 -> (1<<n)-1个状态,因此dp[i][j]=min{dp[i-去除的点j][k]+G[k][j]}dp[i+新加入的点j][j]=min{dp[i][k]+G[k][j]...原创 2018-09-27 14:55:38 · 181 阅读 · 0 评论 -
POJ-2104 K-th Number
地址:http://poj.org/problem?id=2104思路:主席树模板题。。Code:#include<iostream>#include<algorithm>#include<cstdio>using namespace std;const int MAX_N=100005;struct node{ int x; ...原创 2018-10-11 16:57:15 · 295 阅读 · 0 评论 -
POJ-3254 Corn Fields
地址:http://poj.org/problem?id=3254思路:状态压缩dp入门,对于每行的状态枚举,用二进制数来压缩保存。Code:#include<iostream>#include<cstring>using namespace std;const int MOD=1e8;const int MAX_N=13;const int ...原创 2018-09-26 21:37:49 · 190 阅读 · 0 评论 -
POJ-2778 DNA Sequence
地址:http://poj.org/problem?id=2778思路:同样是 AC自动机+矩阵快速幂。。Code :#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>#include<queue>using namesp...原创 2018-09-19 23:34:05 · 248 阅读 · 0 评论 -
POJ-2513-Colored Sticks
地址:http://poj.org/problem?id=2513思路:可以用map将所有颜色编号并记录每种颜色的个数,由欧拉回路知,每个颜色个数为奇数的个数>2时就不成立,再利用并查集判断是否在同一个集合即可。Code :#include<iostream>#include<map>using namespace std;const int...原创 2018-08-30 11:57:45 · 288 阅读 · 0 评论 -
字典树模板题
字典树模板:#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;const int MAX_S=400005; //字符串的字符总长度 int Trie[MAX_S][26],sum[MAX_S],num...原创 2018-08-30 11:51:41 · 265 阅读 · 0 评论 -
POJ-1328-Radar Installation
地址 :http://poj.org/problem?id=1328思路 :贪心,首先将所有点安装x由小到大排序,再找覆盖当前点的圆的最右圆心,等当前的圆包含不了当前的点就找一个新的圆,一直这样遍历,开始我是直接找当前点的最右圆心,结果一直WA,然后发现这样更新圆心是不对的,例如 遍历时先查询绿点,它的圆心在x1,再遍历到蓝点时发现x1包含不了蓝点,这样的结果就是要2个圆,但是以x2为...原创 2018-08-20 11:23:54 · 423 阅读 · 0 评论 -
POJ-3614-Sunscreen
地址:http://poj.org/problem?id=3614思路:一,贪心+set : 对于所有的牛按照 minSPF 由大到小排序然后遍历,对于 牛a[i] 只要找到比a[i].max小的最大的SPF防晒乳即为最优解,因为取大的那么下一个a[i]可能用不到,而对于查找可以用set,再用一个数组记录每瓶防晒乳的个数即可。二,贪心+优先队列: 将所有的牛a[n] 按照minS...原创 2018-08-22 11:42:47 · 234 阅读 · 0 评论 -
POJ-3366-Making the Grade
思路:数组要变为有序数组,首先考虑正序数组a[n],对于dp[i][j]表示 a[i]变为a[j]时前i个元素有序的最少步数(至于为什么只考虑数组中的元素,我也不大懂。。。)因此 状态转换方程为dp[i][j]=abs(a[i]-a[j])+min{dp[i-1][k]} (a[j]>=a[k]) 这样需要对 i,j,k遍历,因此时间复杂度为 O(n^3),为TLE,观察转换方...原创 2018-08-15 02:50:58 · 319 阅读 · 0 评论 -
POJ-3368-Frequent values(倍增DP)
地址:http://poj.org/problem?id=3368思路:倍增DP模板题..Code:#include<iostream>#include<cstdio> #include<cmath>using namespace std;const int MAX_N=5e4+5;int n,Q;int a[MAX_N];in...原创 2019-06-07 13:46:09 · 267 阅读 · 0 评论