上一页 1 2 3 4 5 6 7 8 ··· 20 下一页
摘要: 题意, 长度为n的序列, a1,a2, ...,ai, ..., an, 求最长严格上升子序列长度,与最长下降非严格自序列长度.解法: 首先不得不吐嘈下题目的读入,恶心指数上达5颗星. 对于一套拦截系统最多能拦截多少导弹, 求个非严格下降子序列就可以了.就不废话了. 主要还是求最少拦截数量. 有一个结论, 最少拦截系统数量为 严格上升子序列. 思路如下: 假定一个最长上升子序列形式如: ...a_i ... aj ... 对于 a_i 与 a_j 之间的数 x 只可能有两类, x <= a_i , 则可以 将这些导弹划分到 a_i拦截系统, x >= aj, 则可以将这些... 阅读全文
posted @ 2013-05-13 23:34 yefeng1627 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 还是很弱啊,发现确实要多做CF, 不单单训练思维,而且还有代码。还能多参考大神的思路与代码。Div 2.A题, 给定 n <= 5000, 求满足 1<=a<=b<=c<=n, 的直角三角形数量.解法, 数据量不大,可以暴力枚举 a, b, 然后求满足的 cView Code #include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>typedef long long LL;const int N = 10000;int main(){// me 阅读全文
posted @ 2013-05-13 12:58 yefeng1627 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 感谢 谢大,duoxida,zhsl ,教会了我几个训练赛当中没有想出来的题。A Force Brute题意: 没发现其水题本质啊.. 给定 N个单词, 然后问最大循环次数.解法: KMP next数组的运用, 更详细的可以看这一篇总结http://www.cnblogs.com/yefeng1627/archive/2013/04/28/3050027.html这里就简要说下, 因为求next的过程是一个一个构造循环节的, (L+1)-next[L+1] 即为当前字符串的最小循环节长度, 而 L%( (L+1)-next[L+1] ) 表示目前 循环节构造了多少个,若为0则意味着构造满了.. 阅读全文
posted @ 2013-05-12 20:38 yefeng1627 阅读(305) 评论(0) 推荐(0) 编辑
摘要: A Alice and Bob解法一, 比赛时用的解法是,因为N<=10000,那么枚举A,B分别拿的时候数量,然后求最小,然后得出A,B拿的最小次数的上下界比较,得出区间的几个关系,因为k1>=k2,判定有点复杂。特殊情况比较多。解法二,是用动态规划,状态方程 dp( i, j ) , 表示剩下 i 块石头,j = 0时,最后一次是A拿最小次数, j = 1,最后一次是B拿最小次数。转移方程为 dp( i, 0 ) = min{ dp(i-2^k,1) } +1, dp( i, 1 ) = min{ dp(i-3^k, 0) } +1 .比较下还是解法二比较好,没那么多特殊情况判 阅读全文
posted @ 2013-05-12 19:34 yefeng1627 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 题目来源 The 13th Zhejiang University Programming Contest链接:http://openoj.awaysoft.com:8080/judge/contest/view.action?cid=421#overviewA -Alien's Organ题意: 事件出现平均概率为a, 问出现次数小于等于N的概率解法: 泊松分布,,跟着公式算就好.View Code // p(k) = e^(-ave) * ave^k / k!#include<cstdio>#include<cmath>int main(){ double 阅读全文
posted @ 2013-05-09 13:40 yefeng1627 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 训练赛链接:http://www.acmore.net/contest.php?cid=1013Problem A: Yard题意: n*m的格子,有树与空地,要求每个位置上下左右树的数量为偶数.求拔除与种植最小花费.解法: 状态压缩, 第一行状态确定后,则所有行都确定. 然后枚举第一行状态,取个最小值即可.View Code #include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>using namespace std; const int inf = 0x3f3 阅读全文
posted @ 2013-05-09 13:21 yefeng1627 阅读(394) 评论(0) 推荐(0) 编辑
摘要: A: 相邻三个和最大,及对应中间位置. 暴力即可.View Code #include <iostream>#include <cmath>#include <cstring>#include <cstdio>#include <string>#include <stdlib.h>#include <algorithm>using namespace std;typedef long long LL;const LL Mod= 1e9+7;const int N = 1010;int a[N], n; int 阅读全文
posted @ 2013-05-06 10:21 yefeng1627 阅读(454) 评论(0) 推荐(0) 编辑
摘要: NOI2010的一道动态规划,乌龟棋。线性的N个位置,每个位置有个权值,从1到N,给M个牌。每个牌在[1,4]范围。求最大权值和。最初考虑在用位置来表示状态,发现实在太多,无从下手. 后观摩别人思路后.发现竟然是从4种牌着手.4种牌使用的数量就已经确定了位置, 时间复杂度O(N^4), 一句话的题解..唉.还是太弱.拿到问题考虑的方向面还不够全. 以后要多注意发掘题目所给的数据以及题目的特性. 阅读全文
posted @ 2013-05-02 23:12 yefeng1627 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题意: N个城市(n<=100), 每个城市是一个矩形的(输入数据给定随机三个顶点),且四个顶点都有飞机场,城市内四个顶点移动单位花费Ti, 不同城市间通行只能坐飞机,单位花费都为m,现在给定起点城市A,和终点城市B. 求最短花费.解法: 首先是已知矩形三个顶点求第四个顶点. 然后拆点. 每个城市四个顶点. 城市间四个顶点只能坐火车,城市内顶点和其他城市顶点坐飞机.然后总共400个顶点.做一次floyd,求出任意双点间最短路,然后枚举A,B的四个顶点.取最小即可. 想法很简单....代码写起来感觉不太好~~~虽然1A...View Code #include<cstdio># 阅读全文
posted @ 2013-05-02 20:43 yefeng1627 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 写写思路吧,WA了数十次,都快哭了...改这改那的- -...A了以后都不知道先前哪里写搓了...设定一个阀值sqrt(M),当顶点关联的边数量超过阀值,则令其为超级点,否则为普通点,若边数量为M,则超级点数量不超过2*sqrt(M),证明如下: 因为,无向图中,假定有2*sqrt(M)个顶点相关联的边至少为sqrt(M),则边数量为, 2*sqrt(M)*sqrt(M)/2 = M, 则意味着边数量大于M,所以矛盾, 得证.我们设定一个数组 ans[3],来表示所求结果, 对于每个顶点添加一个sum[2],代表与其关联的顶点颜色为 0/1的边权和.假定我们修改一个顶点x 的颜色, 若其颜色. 阅读全文
posted @ 2013-05-01 21:48 yefeng1627 阅读(747) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 20 下一页

Launch CodeCogs Equation Editor