随笔分类 -  NYOJ

南阳理工acm
摘要:http://acm.nyist.net/JudgeOnline/problem.php?pid=456题目看上去和上次做的搜索nyoj 325 zb的生日很像,但是再用暴力搜索dfs的结果必然是TLE~~解决这题的模型是01背包问题:先计算所有的邮票值sum,然后sum/2作为容量,每一张邮票的值代表一个物体的体积和价值,这就将问题转化为了经典的01背包问题。我又用这个思想做了一些zb的生日,结果超时了,又优化了一下才勉强过去,很无语。。。代码如下:#include<iostream>#include<cstdio>#include<cstring>usi 阅读全文
posted @ 2012-03-04 13:25 枫萧萧 阅读(537) 评论(0) 推荐(1)
摘要:http://acm.nyist.net/JudgeOnline/problem.php?pid=44http://acm.nyist.net/JudgeOnline/problem.php?pid=104nyoj 44 字串和是经典的动态规划问题,104题将44题的一维最大和扩展到矩阵中,求子矩阵的最大和。思路大体还是一致的,先来说nyoj44吧。最大字段和问题用枚举,分治和动态规划都能解决,时间复杂度分别为O(n^2), O(nlogn), O(n)。dp的状态方程: b[j] = max{b[j-1] + a[j], a[j]}, 1<= j <= n; if b[j-1] 阅读全文
posted @ 2012-03-04 13:17 枫萧萧 阅读(497) 评论(0) 推荐(1)
摘要:http://acm.nyist.net/JudgeOnline/problem.php?pid=16很经典的dp题。。。刚开始想用贪心做,做了一半改成dp了,后来听说贪心貌似也可以。。。dp的话贪心前做的一些排序准备工作就没用了~~刚开始我用邻接矩阵存储结果内存达到了4000+,很不爽,又用vector优化了下,这才满意。大致思路:先将数据根据能否嵌套化为图的表示方法,一个DAG,然后在DAG上动态规划dp方程:d(i) = max(d(j) + 1), (i, j) 属于图代码如下:#include<iostream>#include<cstdio>#include 阅读全文
posted @ 2012-03-03 16:52 枫萧萧 阅读(787) 评论(0) 推荐(1)
摘要:http://acm.nyist.net/JudgeOnline/problem.php?pid=37回文字符串时间限制:3000 ms | 内存限制:65535 KB难度:4描述所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。输入第一行给出整数N(0<N<100)接下来的N行,每行一个字符串,每个字符串长度不超过1000.输出每行输出所需添加的最少字符数样例输入 阅读全文
posted @ 2012-01-20 14:50 枫萧萧 阅读(2180) 评论(1) 推荐(1)
摘要:http://acm.nyist.net/JudgeOnline/problem.php?pid=214单调递增子序列(二)时间限制:1000 ms | 内存限制:65535 KB难度:4描述给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长子序列,并求出其长度。如:1 9 10 5 11 2 13的最长单调递增子序列是1 9 10 11 13,长度为5。输入有多组测试数据(<=7)每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的下一行里有n个整数,表示数列中的所有元素.每个整形数中间用空格间隔开(0<n<=1000 阅读全文
posted @ 2012-01-20 13:56 枫萧萧 阅读(590) 评论(0) 推荐(1)
摘要:http://acm.nyist.net/JudgeOnline/problem.php?pid=70阶乘因式分解(二)时间限制:3000 ms | 内存限制:65535 KB难度:2描述给定两个数n,m,其中m是一个素数。将n(0<=n<=2^31)的阶乘分解质因数,求其中有多少个m。注:^为求幂符号。输入第一行是一个整数s(0<s<=100),表示测试数据的组数随后的s行, 每行有两个整数n,m。输出输出m的个数样例输入3100 516 21000000000 13nyoj 56是水题,只要按阶乘遍历一遍即可~~ 1 2 #include<stdio.h> 阅读全文
posted @ 2011-12-20 22:50 枫萧萧 阅读(783) 评论(1) 推荐(2)
摘要:http://acm.nyist.net/JudgeOnline/problem.php?pid=103这题是一个大数水题,最基本的大数题,本来不想贴这题,只是做一下放松一下,结果一直wa~~~最后才发现只是因为0+0 = 0时没有输出~~~贴在这里以示警戒~~~什么时候都要注意细节,不能轻视任何一道题 1 #include<stdio.h> 2 #include<string.h> 3 int a[1010], b[1010]; 4 char s1[1010], s2[1010]; 5 6 void changenum(char *s, int *a) 7 { 8 i 阅读全文
posted @ 2011-12-18 19:36 枫萧萧 阅读(226) 评论(0) 推荐(2)
摘要:zb的生日时间限制:3000 ms | 内存限制:65535 KB难度:2描述今天是阴历七月初五,acm队员zb的生日。zb正在和C小加、never在武汉集训。他想给这两位兄弟买点什么庆祝生日,经过调查,zb发现C小加和never都很喜欢吃西瓜,而且一吃就是一堆的那种,zb立刻下定决心买了一堆西瓜。当他准备把西瓜送给C小加和never的时候,遇到了一个难题,never和C小加不在一块住,只能把西瓜分成两堆给他们,为了对每个人都公平,他想让两堆的重量之差最小。每个西瓜的重量已知,你能帮帮他么?输入多组测试数据(<=1500)。数据以EOF结尾第一行输入西瓜数量N (1 ≤ N ≤ 20)第 阅读全文
posted @ 2011-12-18 15:55 枫萧萧 阅读(1973) 评论(0) 推荐(2)
摘要:http://acm.nyist.net/JudgeOnline/problem.php?pid=284坦克大战时间限制:1000 ms | 内存限制:65535 KB难度:3描述Many of us had played the game "Battle city" in our childhood, and some people (like me) even often play it on computer now. What we are discussing is a simple edition of this game. Given a map that c 阅读全文
posted @ 2011-12-18 10:19 枫萧萧 阅读(925) 评论(2) 推荐(2)
摘要:一笔画问题时间限制:3000 ms | 内存限制:65535 KB难度:4描述zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。规定,所有的边都只能画一次,不能重复画。输入第一行只有一个正整数N(N<=10)表示测试数据的组数。每组测试数据的第一行有两个正整数P,Q(P<=1000,Q<=2000),分别表示这个画中有多少个顶点和多少条连线。(点的编号从1到P)随后的Q行,每行有两个正整数A,B(0<A,B<P),表示编号为A和B的两点之间有连线。输出如果存在符合条件的连线,则输出"Yes&qu 阅读全文
posted @ 2011-12-16 18:34 枫萧萧 阅读(463) 评论(0) 推荐(2)
摘要:http://acm.nyist.net/JudgeOnline/problem.php?pid=20一道无向图的bfs遍历~wa了很长时间...刚开始用邻接矩阵存储的,结果显示数组太大...后来用邻接表存储的,但是邻接表每组数据都要进行初始化,bfs后还要对申请的空间进行释放,否则会对下一组数据产生影响...终于AC了...比较happy~ 1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 #include<malloc.h> 5 #include<string.h&g 阅读全文
posted @ 2011-12-16 09:20 枫萧萧 阅读(1574) 评论(1) 推荐(3)
摘要:1 //105738 jiaolinfeng 三个水杯 Accepted 68 4212 C/C++ 12-15 08:56:02 2 #include<iostream> 3 #include<cstdio> 4 #include<queue> 5 #include<string.h> 6 using namespace std; 7 typedef struct 8 { 9 int cur[3];10 int v[3];11 int step;12 }State;13 State begin, end;14 queue<State> 阅读全文
posted @ 2011-12-15 09:01 枫萧萧 阅读(695) 评论(0) 推荐(1)
摘要:http://acm.nyist.net/JudgeOnline/problem.php?pid=28 大数水题~~ 1 #include<stdio.h> 2 int a[20000]; 3 void ch(int *a, int n) 4 { 5 int i, k; 6 for(i = 19999; i >= 0; i--) 7 { 8 if(a[i]) 9 break;10 }11 k = i;12 for(i = 0; i <= k; i++)13 {14 a[i] = a[... 阅读全文
posted @ 2011-12-11 21:49 枫萧萧