09 2013 档案

摘要:很不错的一题,非常巧妙的用DP顺序解决这个问题。。。可以发现,只和A里面最小的有关系。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define LL long long 9 int dp[50*60000+1];10 vector::iterator it;11 bool cmp(int a,int b)12 {13 return a > b;14 }15 class YetAnotherTwoTeamsProblem16 {17... 阅读全文
posted @ 2013-09-27 17:02 Naix_x 阅读(246) 评论(0) 推荐(0)
摘要:题目链接难得出一个AC自动机,我还没做到这个题呢。。。这题思路不难想,小小的状压出一维来,不过,D和R,让我wa死了,AC自动机,还得刷啊。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MOD 1000000007 8 int dp[101][101][201][4]; 9 int trie[201][2]; 10 int o[201]; 11 int fail[201],que[1001],p[201][201]; 12 int t; 13... 阅读全文
posted @ 2013-09-25 14:27 Naix_x 阅读(281) 评论(0) 推荐(0)
摘要:这题确实很棒。。又是无想法。。其实是AC自动机+DP的感觉,但是只有一个串,用kmp就行了。dp[i][j][k],k代表前缀为virus[k]的状态,len表示其他所有状态串,处理出Ac[len][26]数组来,DP就可以了。状态转移那里一直没想清楚,wa了很多次,记录路径倒是不复杂,瞎搞搞就行。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 char s1[103],s2[103],virus[103]; 8 int dp[103][103][103]; 9 ... 阅读全文
posted @ 2013-09-25 10:06 Naix_x 阅读(813) 评论(8) 推荐(0)
摘要:题目链接很繁琐的爆搜,最多要加2^12条边,暴力就可以,回溯那部分一直没有回溯好,写了一晚上。。。代码非常,非常难看。。对了,还不是普通的爆搜,双向搜索博弈,以前记得看过,这次好像第一次写。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int p[40][40],flag[101],o[41][41]; 8 int que[30]; 9 int sp[100]; 10 int sf[101]; 11 int num,sz; 12 int t1,t2;... 阅读全文
posted @ 2013-09-24 08:23 Naix_x 阅读(271) 评论(0) 推荐(0)
摘要:题目链接题目都看不懂,做毛线。。。看懂了之后就是kmp出,所有的匹配区间,然后DP可以写,贪心也可以做把,DP应该需要优化一下,直接贪,也应该对的,经典贪心问题。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int s1[100001],s2[100001]; 8 int p[100001],o[100001]; 9 int next[100001];10 int flag[100001];11 int judge(int x,int y)12 {13 if(x == y... 阅读全文
posted @ 2013-09-23 15:32 Naix_x 阅读(445) 评论(0) 推荐(1)
摘要:题目链接没有发现那个点,无奈。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define LL __int64 8 int o[10001],rank[10001]; 9 struct node 10 { 11 int u,v,w; 12 } edge[500001]; 13 int n,m; 14 int que[500001]; 15 LL ans[500001]; 16 bool cmp(node a,node b) 17 { 18 ... 阅读全文
posted @ 2013-09-23 11:30 Naix_x 阅读(448) 评论(0) 推荐(1)
摘要:题目链接比赛时候,建图建错了。大体算法想到了,不过很多细节都没想好。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int flag[101]; 8 int p[101][101]; 9 int o[101][101];10 int n,z;11 void dfs(int x,int step)12 {13 int i;14 if(z) return ;15 for(i = 1; i <= n; i ++)16 {17 if... 阅读全文
posted @ 2013-09-23 11:29 Naix_x 阅读(196) 评论(0) 推荐(1)
摘要:题目链接这题,没想出来,根本没想到用最小公倍数来更新,一直想状态压缩,不过余数什么的根本存不下,看的von学长的blog,比着写了写,就是模版改改,不过状态转移构造不出,怎么着,都做不出来。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define LL __int64 6 #define MOD 2520 7 LL dp[31][2600][50]; 8 int index[3000]; 9 int num[31];10 LL gcd(LL a,LL b)11 {12 return b == 0?a:gc... 阅读全文
posted @ 2013-09-20 21:34 Naix_x 阅读(222) 评论(0) 推荐(0)
摘要:题目链接学习大神的数位DP模版。 1 #include 2 #include 3 #include 4 using namespace std; 5 int dp[31][31][31]; 6 int num[31]; 7 //dp[i][j][k] 代表前i位余数为j时候 flag的3种情况 8 int dfs(int pos,int pre,int flag,int bound)//pos代表位置,pre代表余数, 9 {10 int ans = 0,end,tflag,tpre,i;11 if(pos == -1)//flag 1代表上位是1,2代表前面已经有13了... 阅读全文
posted @ 2013-09-18 14:30 Naix_x 阅读(247) 评论(0) 推荐(0)
摘要:题目链接 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 1001 8 #define M 20000001 9 #define INF 0x3f3f3f3f 10 struct node 11 { 12 int u,v,next; 13 }edge[M]; 14 int first[N],DFN[N],Belong[N],stack[N],Low[N],cnum[N]; 15 int in[N],d[N]; 16 int qu... 阅读全文
posted @ 2013-09-17 11:52 Naix_x 阅读(944) 评论(0) 推荐(0)
摘要:表示第一次在div1,我要记录一下...木有挂0,第一题不怎么难的,读题读了20分钟,又想了20分钟,时间有点长,然后各种小心,然后得了140分....后两个题,根本木有看,貌似做出来的也不多。。。涨了6分。。。这。。。我的成绩很稳定,一直都是一个题。。。贴了代码,填充一下内容。。。第一题:class TheTree{public: int maximumDiameter(vector cnt) { int i,j,n,temp,maxz; int p[101]; n = 0; maxz = 0; for(it... 阅读全文
posted @ 2013-09-17 10:56 Naix_x 阅读(227) 评论(0) 推荐(0)
摘要:题目链接这其实入门题,不过,我写了好一会,还是一直wa,图样。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 using namespace std;11 int dp[11][11],sum[11];12 int judge(int x)13 {14 int num[11],i,j,n = 0,pre;15 int ans = 0;16 if(x == 0)17 return 1;18 ... 阅读全文
posted @ 2013-09-17 08:54 Naix_x 阅读(197) 评论(0) 推荐(0)
摘要:题目链接抄的模版。。。mark一下。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define eps 1e-10 9 #define zero(x) (((x) > 0?(x):(-x)) < eps) 10 struct point3 11 { 12 double x,y,z; 13 }; 14 struct line3 15 { 16 point3 a,b; 17 }; 18 struct plane3 ... 阅读全文
posted @ 2013-09-15 21:15 Naix_x 阅读(292) 评论(0) 推荐(0)
摘要:题目链接脑子有点乱,有的地方写错了,尚大婶鄙视了。。。来个模版的。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define LL __int64 6 LL dp[31][31]; 7 int num[31]; 8 LL dfs(int pos,int pre,int bound) 9 {10 int end,tpre,i;11 LL ans = 0;12 if(pos == -1)13 return pre == 0;14 if(!bound&&dp[pos][pre] !... 阅读全文
posted @ 2013-09-11 21:23 Naix_x 阅读(169) 评论(0) 推荐(0)
摘要:题目链接我用的比较传统的办法。。。单调队列优化了一下,写的有点搓,不管怎样过了。。。两个单调队列,存两个东西,预处理一个标记数组存。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 #define INF 100000011 char str[200000];12 int dp[200000];13 int pre[200000];14 int que1[200000];15 int que2[20... 阅读全文
posted @ 2013-09-11 18:52 Naix_x 阅读(274) 评论(0) 推荐(0)
摘要:题目链接这题挺水,看懂了,就OK。卡了几下内存,还是卡过了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 #define N 140311 int r[N][N][2],c[N][N][2];12 int r1[N][N][2],c1[N][N][2];13 char str[N][N];14 int main()15 {16 int i,j,n,t;17 scanf("%d",&n.. 阅读全文
posted @ 2013-09-11 11:29 Naix_x 阅读(263) 评论(0) 推荐(0)
摘要:题目链接以前做过的一题,URAL数据强点,优化了一下。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 int dp[1001][11];11 int dfs(int n,int m)12 {13 int i,temp,ans;14 if(dp[n][m] > 0)15 return dp[n][m];16 if(m == 1)17 return n;18 ... 阅读全文
posted @ 2013-09-11 09:56 Naix_x 阅读(278) 评论(0) 推荐(0)
摘要:题目链接本来暴力写个TLE了,加上记忆化就A了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 int pre[1001][1001]; 9 int flag[1001][1001];10 char s1[1001],s2[1001];11 int sum1[1001],sum2[1001];12 int n;13 int que[3001];14 int dfs(int x,int y)15 {16 if(x == n&&y == n)1.. 阅读全文
posted @ 2013-09-10 21:48 Naix_x 阅读(240) 评论(0) 推荐(0)
摘要:题目链接这破题,根本看不懂题意啊。。。题意:一棵中序遍历是1 2 3 4 5...的满二叉树,从a a+1 a+2 a+3 b,总共多少步。x到y的距离为中间有多少个点。a > b没注意2Y。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 int bin[60];10 int judge(int x)11 {12 int i,temp;13 if(x = 0;i --)16 {17 i... 阅读全文
posted @ 2013-09-10 17:03 Naix_x 阅读(249) 评论(0) 推荐(0)
摘要:题目链接错误的贪了一下,然后D了两下就过了。注意是不上升和不下降。。不是上升和下降。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define INF 10000000010 int p[200001];11 int dp[200001];12 int o1[200001];13 int o2[200001];14 int main()15 {16 int a,b,i,n;17 scanf("%d%d"... 阅读全文
posted @ 2013-09-10 12:05 Naix_x 阅读(283) 评论(0) 推荐(0)
摘要:题目链接这题不难啊。。。标记一下就行了。表示啥想法也没有。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define INF 10000000010 int dp[100001];11 int flag[100001];12 int p[101];13 int o[101];14 int que[101];15 int pre[100001];16 int main()17 {18 int i,j,n,m;19 ... 阅读全文
posted @ 2013-09-09 21:40 Naix_x 阅读(196) 评论(0) 推荐(0)
摘要:题目链接2了,差点就A了。。。这题真心不难,开始想的就是暴力spfa就可以,直接来了一次询问,就来一次的那种,TLE了,想了想,存到栈里会更快,交又TLE了。。无奈C又被cha了,我忙着看C去了。。。这题,是我一个地方写错了。。top = 0的时候会死循环吗?貌似不会把,反正我加了这个判断,就A了,可能优化了一下把。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define INF 100000010 int first... 阅读全文
posted @ 2013-09-09 16:12 Naix_x 阅读(252) 评论(4) 推荐(0)
摘要:题目链接又是输出路径。。。这题完全受上题影响,感觉两个题差不多。。用了基本上一样的算法写了,这题比较纠结,就是卡内存啊。。。5000*5000的数组开不了。。然后没办法,水了好几次MLE,看了一下虎哥的思路,完全不是一个套路,我写复杂了。。我啪啪按他的思路来了一次,就是过不了第三组,貌似得交了一二十次了。。。我把5000*5000降了降,因为只要i 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define INF 1000000... 阅读全文
posted @ 2013-09-05 19:43 Naix_x 阅读(227) 评论(0) 推荐(0)
摘要:题目链接本来用区间DP,3次方的复杂度,T了,看了看题解,降维,直接二次方的复杂度可以解。然后折腾一下输出路径。。终于过了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 char str[4001]; 9 int dp[4001][4001];10 int p[4001];11 int pre[4001];12 int flag[4001];13 int main()14 {15 int i,len,j;16 scanf("%s"... 阅读全文
posted @ 2013-09-04 11:28 Naix_x 阅读(297) 评论(0) 推荐(0)
摘要:题目链接本来觉得这不是经典的贪心吗。。果断水一次,wa了,看了看discuss,发现貌似不好水,土土的DP了一下,复杂度很高了,又T了。。。然后想想单调队列,二分什么的。。。不好往上加,直接搞了标记数组flag,暴力从大到小,遍历寻找,然后就过了。。。这算是优化吗,瞎搞。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 struct node 9 {10 int x,y;11 }p[100001];12 int dp[100001];13... 阅读全文
posted @ 2013-09-03 16:09 Naix_x 阅读(193) 评论(0) 推荐(0)
摘要:题目链接不知为何会在dp里呢。。。INF取小了,2Y。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 #define INF 1e911 int l1,l2,l3,c1,c2,c3;12 int p[20001];13 int dis[20001];14 int in[20001];15 int judge(int x,int y)16 {17 int d = p[x] - p[y];18 ... 阅读全文
posted @ 2013-09-03 14:37 Naix_x 阅读(227) 评论(0) 推荐(0)
摘要:题目链接理解了题意之后,就不难了。。状态压缩+暴力. 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 int dp[1= 1;i --)33 {34 for(j = 0;j = n)44 t2 = 0;45 else46 t2 = j+1;47 if(x... 阅读全文
posted @ 2013-09-03 12:11 Naix_x 阅读(263) 评论(0) 推荐(0)
摘要:水题。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 #define INF 10000000011 int flag[1001][1001];12 double dis[1001][1001];13 int main()14 {15 int i,j,n,m,k,x,y;16 double temp;17 scanf("%d%d%d",&n,&m,&k);18 for(.. 阅读全文
posted @ 2013-09-03 09:56 Naix_x 阅读(192) 评论(0) 推荐(0)
摘要:题目链接隔了一年零三个月,重新刷URAL,这题挺麻烦的输出路径。输出路径挺扯的,乱写了写乱改改就A了。。。我本来想用很靠谱,记录每一条路径的,然后输出最小的,结果Tle,然后我使劲水水又过了一组,发现别人的题解。。直接来了一次 就过了。。我乱搞了搞,倒着记录最小的,然后倒着输出,就过了。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define INF 1000000010 int dp[901][8101];11 ... 阅读全文
posted @ 2013-09-02 20:20 Naix_x 阅读(263) 评论(0) 推荐(0)
摘要:题目链接去年区域赛的题目,早就看过题目了,又是过了好久了。。。这题状态转移,一看就知道应该是 线性的那种,不过细节真的不好处理,一直没想出怎么搞,期间也看过题解,好像没太看懂。。。dp[i][j]表示前i位相同,i之后两位为j的最小转动次数。例如dp[i][x*10+y] i+3位 为z(初始数字),x y z 转化为 ax ay az,ax肯定是第二个串的第i位,后两位随便就可以。只要 预处理 xyz 转化为axayaz的情况,就行了。dp[0]初始化,100位直接Floyd,其他的1000位的预处理,用spfa搞的。预处理写的很长。。 1 #include 2 #include ... 阅读全文
posted @ 2013-09-02 11:39 Naix_x 阅读(511) 评论(0) 推荐(0)

点击右上角即可分享
微信分享提示