![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
poj
功不唐捐q
这个作者很懒,什么都没留下…
展开
-
poj 1936 c++ : 全在其中
描述 你设计了一个新的加密技术,可以用一种聪明的方式在一个字符串的字符间插入随机的字符串从而对信息进行编码。由于专利问题,我们将不会详细讨论如何在原有信息中产生和插入字符串。不过,为了验证你的方法,有必要写一个程序来验证原来的信息是否全在最后的字符串之中。 给定两个字符串s和t,你需要判断s是否是t的“子列”。也就是说,如果你去掉t中的某些字符,剩下字符将连接而成为s。原创 2016-12-10 15:13:20 · 1625 阅读 · 0 评论 -
poj 2388 c++:寻找中位数
描述在N(1输入第1行:N第2至N+1行:每行是一个整数输出第一行:中位数值得注意的是,nth_element跟sort用法类似,如果数组a长度为n, 最后一个参数是a+n而不是a+n-1#include #include #include using namespace std;int n;int a[10050]原创 2016-12-30 13:29:40 · 1834 阅读 · 0 评论 -
Poj 1050 c++:To the Max
思路:将二维的压缩到一维进行考虑,压缩的过程是暴力的,dp[i][j] 表示的是以1,1到i,i这矩形内的数字和,在初始输入数组的时候就计算dp,后面遍历所有行的组合#include #include using namespace std;int n;int dp[501][501];int a[501][501];int main(){ cin>>n; int i,j;原创 2017-01-05 11:29:47 · 367 阅读 · 0 评论 -
POJ 1952 C++:BUY LOW, BUY LOWER
思路:1. 用两个数组分别存长度和方法数(动态规划)2. 找到第一个比i大的数,将已i结尾的长度和方法数赋值3. 如果又找到一个比i大的数,长度正好为i-1,那么就更新i的方法数4. 如果找到一个数和i相等,并且此时i的长度还是初始化的1,那么将i的方法数置为0,并且break#include #include using namespace std;int n;int原创 2017-01-03 15:19:29 · 358 阅读 · 0 评论 -
POJ 1094 C++:Sorting It All Out
思路:拓扑排序的思想,比较麻烦的一点是没输入一行关系就需要调用函数判断一次,每次找到入度为0的点,如果没有这样的点,那么说明存在环,如果有多个,无法判断关系但是还可能是存在环,找到入度为0的一个点之后,删除这个点和它所连接的边,注意:每次只能删除一个点,如果一次删除多个点,那么flag可能一直为0,无法判断flag=3的情况。反例:A#include #include #include原创 2017-01-03 12:43:47 · 408 阅读 · 0 评论 -
poj2479 c++ : Maximum sum
poj2479 c++ : Maximum sum描述Given a set of n integers: A={a1, a2,..., an}, we define a function d(A) as below: t1 t2 d(A) = max{ ∑ai + ∑aj | 1 <= s1 <= t1 < s2原创 2016-12-10 00:25:37 · 842 阅读 · 0 评论 -
POJ题目c++:Butterfly
描述有一群旅行爱好者,有一天,他们带回了n只蝴蝶回来。他们相信每一只都属于两个不同种类中的一种,为了讨论方便,我们称它们为A与B。他们想把n只标本分成两组——一些属于A且一些属于B——但是直接标记任何一个标本对于他们是非常困难,因此他们决定采用下面的方法。对每对标本i和j,他们细心地把它们放到一起研究。如果他们以自己的判断足以确信,那么他们把这对蝴蝶标记为“相同”(这意味着他们原创 2016-12-09 16:08:24 · 2145 阅读 · 4 评论 -
POJ 1163 C++:The Triangle
解题思路:简单的动态规划题,思路就是从下往上遍历数组,从倒数第二行开始更新数组的值,每次取最大的和,最后输出a[0][0] 即可#include #include int max(int a,int b){ if(a>b)return a; else return b;}using namespace std;int a[105][105];int main(){ int原创 2016-12-14 21:10:36 · 515 阅读 · 0 评论 -
poj 2299 c++:Ultra-QuickSort
题目大意:求逆序对个数,比如3,1,2 ,逆序对就是3,1 3,2这两对,逆序对数为2解题思路:已经写了三次,可还是每次都有细节的错误,相当苦恼,还是对这题理解不到位。这题其实就是归并排序,定义两个函数,merge_sort将数组的两个下标分成两部分,merge1是求有序的两部分的逆序对数。#include#include#includeusing namespace原创 2016-12-14 20:05:23 · 372 阅读 · 0 评论 -
poj 1953 c语言 : World Cup Noise
题目大意:给出一个整数,比如3就是3位,对这3位进行编码,编码规则是只能用0,1,但是不能出现两个相邻的1解题思路:演草纸写出前面几个,n=1 ans=2 0 1n=2 ans=3 00 01 10n=3 ans=5 000 001 010 100 101原创 2016-12-10 15:57:17 · 563 阅读 · 0 评论 -
POJ 1321 C++ : 棋盘问题
思路:1.DFS逐行的搜索,定义vis数组记录某一列上是否已经有棋子存在,每次行数加1迭代,最后别忘了搜索完一行都没有放棋子的情况2.特别注意:输入的时候用getchar读入一行,然后存入字符数组中#include #include using namespace std;int n;int k;int ans=0;int vis[9];char a[9][9];int原创 2016-12-30 16:26:26 · 879 阅读 · 0 评论