tjoi2013专题

BZOJ 3172 [Tjoi2013]单词 AC自动机 模板题

Description 某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。 Input 第一个一个整数N,表示有多少个单词,接下来N行每行一个单词。每个单词由小写字母组成,N<=200,单词长度不超过10^6 Output 输出N个整数,第i行的数字表示第i个单词在文章中出现了多少次。 Sample

P4309 [TJOI2013]最长上升子序列 [vector+树状数组]

传送门 考虑每新加进来一个数, 要么答案还是之前的, 要么这个数重新更新一个 发现数是按顺序插入的, 也就是说一个数无论放在哪里, 它后面的数对它都没有影响 于是我们可以用平衡树之类的东西先把原序列搞出来 然后按位置插入当前位置的值, 更新当前的DP值 可以树状数组维护, 然后惊讶地发现平衡树那一步可以用vector水 #include<bits/stdc++.h>#defi

BZOJ3174: Tjoi2013 拯救小矮人

思路: 先贪心一发,逃生能力(a+b)强的肯定是放在最后走,然后dp;f[i]表示走了i以后的剩下的最大高度。 #include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<cmath>#include<cstring>#include<string>using namespace s