POJ刷题记录
来自PKUSC的恶意!求保佑!
Rainbow6174
这个作者很懒,什么都没留下…
展开
-
POJ 2828 Buy Tickets 题解&代码
题目大意:对于每组数据,给出一个空队列,有m次插入,每次插入都将在队列的第pos[i]处插入一个值val[i],输出队列最后的状态。 思路: 在第pos[i]处插入一个元素,则第pos[i]处后的所有元素都将向后移动一位,看起来是平均每次插入需要n次操作。 但是我们可以看出,对每次插入来说,本次插入结束后本次所插入的元素位置一定会是pos[i]+1,那么与其先插入可能会需要向后移动的元素,不如原创 2015-12-03 19:43:40 · 731 阅读 · 1 评论 -
POJ1151 HDU1542 CODEVS3044 Atlantis 题解&代码
矩形面积求并 思路:离散化之后按x轴or按y轴刷扫描线,用线段树来表示区间范围。**被POJ的%.2f输出坑了一个多小时的我并没有心情仔细写题解,有机会再补吧#include<iostream>#include<algorithm>#include<stdio.h>#include<map>#define lson (o<<1)#define rson ((o<<1)|1)using原创 2015-12-04 20:13:37 · 896 阅读 · 0 评论 -
POJ2104 K-th Number 题解&代码
你说什么?和HDU题目一样?不不不这才不是多组数据= = 其实重点在于我终于知道为什么我一直TLE了…map被卡了那个萌萌哒logn 所谓STL一时爽全家火葬场,改了数组记录之后过得轻轻松松 代码如下【一会去把hdu的排序也改一下重交试试#include<iostream>#include<algorithm>#include<map>#include<string.h>#includ原创 2015-12-21 21:43:49 · 1995 阅读 · 2 评论 -
POJ1014 Dividing 题解&代码
二进制优化写跪好几次感觉有点醉= =果然是好久没写dp都忘了#include<iostream>#include<stdio.h>#include<string.h>using namespace std;bool flag;int T,a[10],dp[60005],tot,now,temp,x;int main(void){ while(true) {原创 2016-01-07 18:14:03 · 646 阅读 · 0 评论 -
POJ1050 To the Max 题解&代码
DP= =加上前缀和优化#include<iostream>#include<stdio.h>using namespace std;int n,ans,sum,a[105][105],s[105][105];int main(void){ scanf("%d",&n); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++)原创 2016-01-07 20:31:47 · 693 阅读 · 0 评论 -
POJ1080 Human Gene Functions 题解&代码
卧槽为什么没人告诉我这个数列长度可以是0= =被教做人 我看到数列长度可以是0的时候【表情大概和下面这只陆夫人一样 #include<iostream>#include<stdio.h>using namespace std;int T,l1,l2,dp[105][105];char s1[105],s2[105];int d[5][5]={ {5,-1,-2,-1,-3},原创 2016-01-07 22:14:51 · 617 阅读 · 0 评论 -
POJ1451 T9 题解&代码
第一次写Trie树我居然1A了【不,不要算某个PE Trie树模板级别的题【哪里模板了 对于每组数据的dictionary建立一个字典树,然后dfs查询,用数组保存离线的一个询问里的length-1个输出#include<iostream>#include<stdio.h>#include<string.h>#define clr(x) memset(x,0,sizeof(x))usin原创 2016-01-20 18:14:56 · 742 阅读 · 0 评论 -
POJ3691 DNA repair 题解&代码
我心好痛啊…f**k -1改成0x3f3f3f3f就过了…这么玄妙的东西我卡了半个月我服 等老师再研究一下吧,我现在不想看到这道题 //一道题的代码几乎能背过是什么体验 注释不删,等待第二版更新#include <cmath>#include <climits>#include <cstdlib>#include <iostream>#include <queue>#include原创 2016-02-17 21:01:42 · 908 阅读 · 0 评论 -
POJ3261 Milk Patterns 题解&代码
二分后对后缀数组的height分组…解决 第一次写(chao)后缀数组,调了两个多小时,代码都不会抄【笑 本来该附后缀数组学习记录,感觉快要吃饭了不想写…再说吧(正文在最后)发现了一个很玄妙的地方,二分方法不同的话时间差很大…大概是数据比较玄学?这是63ms版 l=1,r=n,mid; while(l<r) { mid=(l+r)/2; i原创 2016-02-19 16:22:53 · 546 阅读 · 0 评论 -
POJ 2774 Long Long Message 题解&代码
第二道后缀数组…其实感觉比上一道简单【23333 后缀数组的主要用法之一就是height[]…这道题就是把两个字符串用分隔符连接起来,求新字符串的height[],然后找到有效height的最大值即可【有效height就是该height对应的两个串分别在两个字符串中#include<iostream>#include<algorithm>#include<cstdio>#include<cs原创 2016-02-19 20:24:04 · 457 阅读 · 0 评论 -
POJ3294 Life Form 题解&代码
报警了…交了11发WA最后发现数组开大RE之后代码一直是对的… 100个字符串长度是1000… 我都用的是100… 为什么不RE…QAQ 觉得从RE变成不RE数组就没问题还是too naive 【说好的后缀数组学习笔记呢【下周吧,先跟标准进度#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>u原创 2016-02-27 17:44:17 · 780 阅读 · 2 评论 -
POJ3630 Phone List 题解&代码
第一次用vim写代码…感觉爽爽哒,终于明白很多代码为什么会有诡异的空格什么的…习惯 vim的快捷操作几乎全部是和单词相关,也就是说如果一句代码中间没有空格…vim的优势就完全消失了在下的习惯一时半会改不过来…嘛,不过既然看到了其道理自然是要努力改的裸的trie树,最后加上一遍dfs,dfs检验是不是有一条路径上同时有两个单词结尾,如果有输出NO,反之则反#include<iostream>#in原创 2016-02-29 18:57:51 · 733 阅读 · 0 评论 -
POJ 2778 DNA Sequence 题解&代码
调了三个小时…2333333感觉自己傻逼了是一道很有(ma)趣(fan)的AC自动机+矩阵快速幂 我们需要算出的初始矩阵是dp[i][j]是用一步从自动机的第i个位置到第j个位置有几种不产生病毒DNA的方式 然后乘n次就得到答案辣【答案当然是从初始位置(0)到最终位置i的方式数之和被vim坑了一发…还是不太习惯,平时写习惯的矩阵快速幂迷之CE… 后来发现初始矩阵算对了但是还是答案太少…感谢样例原创 2016-03-01 20:32:05 · 494 阅读 · 0 评论 -
POJ1743 Musical Theme 题解&代码
后缀数组… 对最长不重叠子串长度进行二分判定,判定方式是暴力分组 利用height[]的性质:如果height[i]>x,height[i-1]>x,那么存在从sa[i-2]到sa[i]的部分最长公共子串大于x 可以推论:对于height[i]~height[j]均大于x,那么存在sa[i-1]到sa[j]的部分最长公共子串大于x 这样可以得出对于一段连续的满足条件的height[],有连续原创 2016-03-09 22:04:32 · 444 阅读 · 0 评论 -
POJ3126 Prime Path 题解&代码
题意:每次给出两个四位素数a和b,要求每次修改a中的一位【要保证修改后仍然是四位数】,询问最少修改几次后能得到b,不能得到的话输出impossible其实是个bfs水题…结果我判素数浪了一发WA了好久 原因是sqrt(i+0.5)我偷了个懒只写了sqrt(i)结果素数判错了 最后这种水题硬是写了一发对拍拍出来了#include<iostream>#include<queue>#include原创 2016-03-22 16:31:44 · 1273 阅读 · 0 评论 -
POJ1905 Expanding Rods 题解&代码
题意: 给出一个长L的木棒,给出温度n和膨胀系数C。 已知木棒的长度S遵循公式S=L*(1+n*C) 如图,图源自 小優YoU 求当一根木棒如此膨胀时形成的弧形中心位置和原来的中心位置之间的距离h思路:暴力几何题…主要是一些公式推导,如下【依照代码的变量命名,即上文S均w ① L0=(1+n*C)*L ② L=2*sqrt(R*R-(R-h)*(R-h)) ③ S=2*pi*R*(原创 2016-04-01 11:55:03 · 551 阅读 · 0 评论 -
POJ3468 A Simple Problem with Integers 题解&代码
题意:给出n个数排成一列,有q个操作,分为Q和C,Q操作[l,r]询问区间[l,r]的区间和,C操作[l,r]对[l,r]区间同时增加x,按题意输出就行了 题解:线段树,主要是好久没写又错了好长一段时间…万年LL我就不多说了,看错范围觉得sum[]不需要LL,另外重点是query和insert不可能越界访问,所以就算区间对于这组数据是无效区间,只要访问到对应区间也一定要pushdown…忘了结果纠原创 2016-04-05 10:48:18 · 542 阅读 · 0 评论