自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 资源 (17)
  • 收藏
  • 关注

原创 UVA 10066 shuangzita...

//lun lcs de zhong yao xing ....#include#include#includeusing namespace std;int dp[102][102];int n1,n2;int a[200];int b[200];int lcs(){ memset(dp,0,sizeof(dp)); for(int i=1;i<=n1;i++) {

2013-11-25 13:36:21 690

原创 uva 10131 大象。

就是一个最长上升子序列而已。状态转移的时候注意一下必须是严格递增的就好#include#include#include#include#includeusing namespace std;struct P{ int i; int w; int s; P() { i=-1; s=0; }

2013-11-25 12:06:04 511

原创 UVA 111 LCS

注意他给的是第n个事件的顺序,不是按事件的顺序给的....#include#include#includeusing namespace std;int s[100];int t[100];int dp[100][100];int lcs(int n){ memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) { for

2013-11-23 19:11:37 620

原创 lightoj 1202

#include#includeusing namespace std;int main(){int t,tt=1;scanf("%d",&t);while(t--){int x,y,x1,y1;scanf("%d%d%d%d",&x,&y,&x1,&y1);printf("Case %d: ",tt++);int tmp1,tmp2;tmp1=x1-x;if(tm

2013-11-23 00:23:43 660

原创 LightOJ 1136 Division by 3

#includeusing namespace std;int main(){ int A, B, T; int caseNo = 0; cin >> T; while(T--){ int count = 0; cin >> A >> B; count = (B - A + 1) / 3 * 2; if((B - A + 1) / 3 * 3 == B - A -

2013-11-23 00:20:56 822

原创 这到底是个什么游戏。。

ACM并不是需要拿方法去匹配问题。     而是,出题人拿问题来匹配你应该掌握的方法。所以,枚举一下自己应该掌握的方法吧。     AC无难事,只怕有心人。     当然,大神可以随意。。。

2013-11-21 22:04:00 647

原创 CF 362C 冒泡排序 交换哪两个数逆序数减少最多

交换两个数,求使得排列的逆序数最多减少多少,以及有多少个这样的数对数据范围有5000,我的算法是n^2logn因为有n^2个询问,所以最好O(1)的回答,所以需要先预处理一下。怎样快速回答交换两个数之后逆序数的改变呢?这就要快速的算出i和j之间有多少个比num[i]小的数,有多少个比num[j]小的数,比它们大的数一减就OK。设 si为i到j中比i小的数 bi为比i大的数 sj

2013-11-21 20:27:27 1753 1

原创 CF竟然绿掉了...这学期的目标是DIV1

C题没出来。。。。昨天CF竟然绿了。。竟然绿了。。。好吧,今年的目标就是紫色,我要进DIV1!!首先自己的DP贪心2分这样的题目得拿下,然后数据结构图论的题目,然后才是数学题。今年的目标就是这样了。昨天的C题没做出来,首先就是因为这种需要变形构造的题目自己做的太少了。另外这也算是一道数据结构题目。当然也是比较水了。拿着一本刚刚看完的ACM的书,我在想,在ACM上,我还能再学到什么?若不

2013-11-20 15:19:13 1221

原创 长沙赛区结束

这次长沙打完,真的不想多回忆过去,实在是把呆逼和逗比发挥到极致的一场比赛。3次看错题目,导致多WA了近10发,还导致一题到最后五分钟才明白题意,交了一发没有优化的T了。如果提前十分钟能多看看题目的话,我想结果不会是这样。真是给自己涨教训啊。这次比赛从热身到正赛,所有题目都是我自己做出的,自己曾经对队友期待太高了,上一届的人走后,不知道学校里还有没有人在搞ACM。没有了学长们,我也不想明年被

2013-11-18 10:26:43 1186

转载 ACMer的博客 没事看看 好处很多

ACM大牛BLOG(转)2010-08-26 Twilightgod CUST http://blog.csdn.net/twilightgodAekdycoin FZU http://hi.baidu.com/aekdycoinForeverlin HNU http://hi.baidu.com/forverlin1204/blogMatrix67 PKU http://www.

2013-11-18 00:10:02 446

原创 单调队列 POJ 2823

引用:一.       什么是单调(双端)队列单调队列,顾名思义,就是一个元素单调的队列,那么就能保证队首的元素是最小(最大)的,从而满足动态规划的最优性问题的需求。单调队列,又名双端队列。双端队列,就是说它不同于一般的队列只能在队首删除、队尾插入,它能够在队首、队尾同时进行删除。【单调队列的性质】一般,在动态规划的过程中,单调队列中每个元素一般存储的是

2013-11-16 21:21:20 542

原创 POJ 3311 旅行商问题 状态压缩

求走过所有点并回到原点的最短路,可以走一个点多次.因为可以走一个点多次,所以,可以先求出每两个点之间的最短路,然后用经典的旅行商问题的状态压缩DP做法。旅行商问题的状态压缩DP状态压缩还是 状态 阶段 答案状态就是已经走过的点,阶段就是现在在哪一个点,答案就是从这个点出发遍历剩下的点,并且回到原点的最短路是多少。一开始我有一个疑问,为什么一定能从剩下的点回到原点?这是因为一开始

2013-11-15 09:45:47 1799

原创 自己曾经以为自己可以成为想象中的大神,可是那终究是不存在的东西

看知识点,见题型,做某一方面的题练习解决这一题型。     就是这样一个过程。     我从未见过所谓的大神,有的只是勤奋的思考和勤奋的理解记忆。      那些传说中的可以创造一切的大神,我从未见过,所以我相信,那不存在,更不可能是我。     虽然现在有点吃力,但是通过那些网上前辈写的总结和自己买的几本书,看上面的题型,学各种解决方法。自己每一天都会变强一点点,每一天都会AC曾

2013-11-14 23:23:49 757

原创 SGU223 状态压缩DP

问在棋盘上放置K个国王,让其不能够互相攻击的放置方法有多少种国王可以攻击周围的8个格子dp[i][j][k] 表示前i行防止j个国王,且第i行状态s的情况下放置的方案数。状态压缩dp的关键一是找到完整的描述状态的方式 本题不但要描述最后一行,还要描述现在总共放置了多少个国王关键二是找出合法的状态转移方式。本题中一行中可能的状态方式先枚举出来10的时候总共不过200,然后把每种可能的

2013-11-14 14:31:51 621

原创 状态压缩DP

怎么确定状态     微观状态 一般都是一堆0101010来表示某位置用或者不用     宏观状态  一般都是用数字来表示微观状态用了几个1     还有状态的阶段。     比如,要计算棋盘上放置K个国王令其不能互相攻击的问题    dp[i][j][s] 就表示第i行状态为S时前i-1行放了j个国王

2013-11-14 00:38:44 533

转载 国家队ACM论文分类整理(转载)

距离NOI时间越来越少了,选择性地看一些集训队论文是很有必要的。(在此给已经看过所有论文的神牛跪了= =)所以,我在此整理了一下,供大家参考。组合数学计数与统计2001 - 符文杰:《Pólya原理及其应用》2003 - 许智磊:《浅谈补集转化思想在统计问题中的应用》2007 - 周冬:《生成树的计数及其应用》2008

2013-11-13 22:15:55 2323

原创 回来三周了,这三周

从成都回来之后,到现在一共三周了,感觉,这三周学到的东西比我过去一年学到的东西都要多,尤其是开始刷专题之后。从成都回来之后有那么几个感觉,第一个感觉是题没有那么神了,都是一些常规的题目,一步步的学都能做的会。第二个感觉是人没有那么神了,以前感觉那些会做ACM题目的都是大神,现在感觉,他们为什么能做出来那些题目,要么做过,要么做过。我时间不是很多的,所以,对于三周能进步着一些,还是很不满意。

2013-11-13 10:44:37 647

原创 lightoj 1210 最少加边,使得图变成强联通

huilaizai xie#include#include#include#include#includeusing namespace std;#define MS(x) memset(x,0,sizeof(x))stack S;vector G[23000];vector C[23000];bool used[25000];int dfn[25000];in

2013-11-11 21:11:30 661

原创 lightoj 1168 tarjan 强联通分量加缩点 加各种题目坑

#include#include#include#include#includeusing namespace std;vector G[2000];vector C[2000];int dfn[2000];int low[2000];int cmp[2000];stack sta;bool instack[2000];bool used[2000];int top

2013-11-11 12:49:20 740

原创 lightoj 1034 贪心 拓扑排序

#include#include#includeusing namespace std;vector G[15000];int nv,ne;vector topo;bool used[20000];void dfs(int n){ used[n]=1; for(int i=0;i<G[n].size();i++) { int v=G[n][i]; if(!used

2013-11-10 22:10:46 848

原创 lightoj 1003 强联通模板题

#include#include#include#include#include#include#includeusing namespace std;map mp;vector topo;vector G[12000];vector rG[12000];int cmp[20000];int num_kind=0;int used[20000];void dfs(

2013-11-10 21:34:33 730

原创 lightoj 1214 大数除法

#include#includeint main(){ int cas; scanf("%d",&cas); for(int T=1;T<=cas;T++) { char num[300]; long long div; scanf("%s%lld",num,&div); printf("Case %d: ",T); if(div==0) { print

2013-11-10 15:51:39 719

原创 lightoj 1211 立方体面积交

#include#includeusing namespace std;int main(){ int cas; scanf("%d",&cas); for(int T=1;T<=cas;T++) { int n; scanf("%d",&n); int bl[3],tr[3]; for(int i=0;i<3;i++) scanf("%d",&bl[i]

2013-11-10 14:57:32 679

原创 lightoj 1189 水题叫你明白什么叫贪心....

#include#include#includeusing namespace std;typedef long long ll;ll fac[21];int main(){ int cas; fac[0]=1; for(int i=1;i<20;i++) fac[i]=fac[i-1]*i; scanf("%d",&cas); for(int T=1;T<=ca

2013-11-10 00:45:41 599

原创 lightoj 1136 第一次打表找规律做题..

#includetypedef long long ll;ll getNum(ll n){ if(n==1) return 0; ll sum=2*((n+1)/3)-1; if((n+1)%3==0) return sum; return sum+1; }int main(){ int cas; scanf("%d",&cas); for(int T=1;T

2013-11-09 23:55:27 668

原创 讨厌的字符串读入

字符串一共两种string char*1.读入一个字符scanf("%c",&c);c=getchar();2.读入一行字符char c[100];gets(c);string s;getline(cin,s);3.string 和char*转换这个以后再说吧..

2013-11-09 21:08:37 540

原创 lightoj 1109 struct is good

#include#includeusing namespace std;struct P{ int num; int count; bool operator < (const P &o) const { if(count==o.count) return num>o.num; return count<o.count; }};P n[1500];int

2013-11-09 20:06:54 613

原创 hangzhou 02

#include#include#include#include#include#includeusing namespace std;const int INF=12345678;int n,m;struct P{ int x,y; P(int a,int b) { x=a; y=b; } P(){}};int b[200][200];queue q

2013-11-09 14:21:27 672

原创 sin PI and other things

#include#includeint main(){ double PI=2*acos(0.0); int cas; scanf("%d",&cas); for(int T=1;T<=cas;T++) { double R,r; double n; scanf("%lf%lf",&R,&n); double ang=PI/n; r=R*sin(ang)/(1+

2013-11-09 11:07:07 716

原创 lightoj 1045 有关进制的二三事

做完这道小题,对进制的理解加深了一点。进制就是把一堆1用log级别表示出来的方法。log的底数就是进制。不同进制(除了1进制之外)在表示的难度方面没有质的变化。所谓10进制并没有什么优势。2进制一样可以log级别表示数。总共有几位就是log(n)进制转换看这篇文章就好了http://www.cnblogs.com/phinecos/archive/2009/09/11/15

2013-11-08 22:39:53 648

原创 lightoj 1042 练一练位操作

要把数字变成1的个数相同,比这个数大的最少的一个数我的想法就是先找到第一个01这样的序列,把1向前移动一位,然后再把位置靠前的1移动到后面的0上。位操作:&= 可以把某位置0 通过1110111这样子的数字|= 可以把某位置1 通过0001000这样的数字^ 异或,与11111异或可以取反 另外两个相同的数与另一个数异或得到另一个数 5^2^5=2~ 按位取反

2013-11-08 20:24:01 825

原创 lightOJ 1002 最小瓶颈树 ..

第一次要把最小生成树保存下来。还是对算法理解有问题。一开始的时候要把起始点设置为1,并把所有的相连边加入队列中。自己写edge的时候不喜欢记录来源,所以用了个Pair,实在捉鸡,可以直接写成带有from的struct,这样代码复杂度会减少很多。#include#include#include#include#include#includeusing namespace st

2013-11-08 17:24:55 611

原创 LIGHTOJ 1056

#include#includeint camp[2000];int rt[500];int n,k;int count;bool C(int x){ memset(rt,0,sizeof(rt)); int sum=0; count=0; for(int i=0;i<n;i++) { if(camp[i]>x)//this is important retur

2013-11-08 00:04:38 602

原创 lightoj 1043 浮点数2分

2分ad的可能值,本来推公式也可以,但是感觉有点麻烦。2分50次就够了,2分20次反正挂了#include#includeint main(){ double ab,bc,ac; double ad,de,ae; double k; int cas; scanf("%d",&cas); for(int T=1;T<=cas;T+

2013-11-07 22:03:32 841

原创 坚决不能闭门造车

即使是上自习,也一定要去自习室,要找人陪着。学习就是要一群人在一起。惑而不从师,其为惑也,终不解矣。有时候会觉得问别人有点丢脸..但是要学习不能骄傲。骄傲就只能自己乱搞了,乱搞的结果就是跪掉。从前的大牛现在也不经常来基地了。在基地一般就只有我一个人,真的是闷死了。还是自习室好,有那么多的人呢。自己的效率高了不知道有多少倍。

2013-11-07 18:06:43 982

原创 怕,就只能输一辈子

视线决定高度,很多时候。明明是自己能够做的更多,偏偏给自己的理由,让自己觉得自己做的已经足够好了。自己能做的还有很多呢。不要以为每天刷3个题就不错,很多人每天刷十几题。不要觉得每周放两场比赛就可以了,有人每天都在刷5小时的比赛。不要觉得自己学不会什么什么知识点,看自己曾经觉得很难得东西,现在不是觉得那是很水的东西吗?自己按照ACM的各种题型尽量刷吧。没有什么不可能。怕,就只能输一辈

2013-11-07 11:07:47 533

原创 POJ1185 状态压缩DP 又是一道有意义的水题

之前做过POJ3285,那道题下一行的状态只和上一行有关,所以每一行只需要记录一行的状态。这一个炮兵阵地,炮可以打两行,所以不仅仅与上一行有关,还与上上一行有关,所以每一行的状态都由上两行状态推出,因为要记录两个状态,所以用了一个三维的dp,dp[i][j][k],表示第i行状态为state[k],第i-1行状态为state[j]时前I行最多有几个炮兵。写的时候一开始在初始化的时候没有

2013-11-07 10:42:22 660

原创 难道2分真的要卡死我么 ZOJ3702

今天做浙大的校赛的时候见到的题目,被队友找规律秒掉了,但是听大牛说他是2分搞过去的。于是我也再用2分写一发。但是还是WA了好久,究其原因并不是2分的错,而是我输出格式少了换行。如果要用半开半闭区间的二分,就一直用吧。这道题是个二分查找,当做查上界或者查下界都可以做,毕竟相等的只有一个。最后的正确答案就是你的闭区间那部分。就有包括等号的那部分。#include#includet

2013-11-07 01:32:56 731

原创 POJ 3254 简单状态压缩DP

现在对简单题的态度也变了,觉得简单题未必不能帮助你提高。简单题往往更裸,更能单独体现某一个知识点或者技巧。而复杂题目往往是几种技巧的组合使用。这是一道入门的状态压缩DP。在一个棋盘上选择一些不相邻的点(上下左右),求这些点的总数。有一些点不可选。首先把每行可能的状态保存下来。存在state里面,因为限制了不相邻,所以这样一轮筛选之后单行的状态数就已经少了很多。然后对每一行i 枚举所

2013-11-06 16:59:20 538

原创 所以说,你是个会写2分的人么?

关于2分,实在是自己的痛处,上次区域赛热身的时候把2分写挂了,被黑了好几个月了= =,幸亏我有强大的心脏。。2分的用处不仅仅在于查找,还有很多用处,比如2分答案,查询满足条件的最大值,或者查询满足条件的最小值,又或者是平均值。我写的2分是这个样子的(取自 线段树和树状数组各过一次POJ2182)因为我要找的是满足空格数符合条件的最小的一个值,也就是找下界,所以选择更新一个左开右闭的

2013-11-06 11:14:27 611

扫雷源代码C++

扫雷源代码 VC6编译通过 使用MFC 贡初学者使用

2012-05-04

C语言编译器的源代码

编译器源代码 C语言

2011-11-29

聊天软件源代码

源代码

2011-11-29

QQ协议源代码

QQ协议源代码QQ协议源代码QQ协议源代码QQ协议源代码QQ协议源代码QQ协议源代码

2011-11-29

飞鸽传书C++版源代码

飞鸽传书C++版源代码VC编译通过,供大家下载学习

2011-11-29

emule源代码分析.doc

分析emule原码的模块,帮助了解开源的emule

2011-11-28

算法导论.pdf

麻省理工大学的教材,中国软件研究生的课程,经典分析算法。每章独立,利于查找.

2011-11-28

图灵机.pdf

图灵机.pdf 图灵机.pdf 图灵机.pdf 图灵机.pdf 图灵机.pdf 图灵机.pdf 图灵机.pdf 图灵机.pdf 图灵机.pdf 图灵机.pdf 图灵机.pdf

2011-11-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除