摘要: 开始用深搜,写了大半突然发现不行,大牛指导下改用广搜,开始是单纯的广搜,只是对方向处理的时候有点特殊,即break出的小水滴若没遇到阻碍则一直沿相同方向前进,否则被吸收,如果吸收后的大水滴过了稳定的限制则重新break成四个方向的小水滴。WA搜到一大牛博客,进一步发现如果在q次点击结束前已经到达了全为0的状态,则剩下的水滴不用再处理,输出YES,加上后依然WA然后放下,等自己灵感乍现吧灵感乍现如果格局一开始就全为0,那就后面的点击都不用处理了,直接YES,WA要断网的时候又仔细看了遍题目,终于发现了关键点:When multiple waterdrops arrive at (a square 阅读全文
posted @ 2012-05-08 18:51 LETTers 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 这题感觉 lcp 还是必须的,时限卡得比较紧,所以就只能扩展 kmp 了。但是比起后缀系列的 lcp ,扩展 kmp 能求的 lcp 还是有一些限制的。本题中,对于一些情况,就不得不用循环复制的方法,将问题化解。大致可以分为 3 种情况,具体就看图吧。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define MAXN 100000#define max(x,y) x>y?x:yvoid get_self_lcp(char *t, int lt, int 阅读全文
posted @ 2012-05-08 18:48 LETTers 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 矩阵连乘,直接暴力之。因为只要求保留两位小数,函数一定是收敛的。#include<iostream>using namespace std;double temp[105][105];double jiecheng(int n){//不想查阶乘的英文了。if(n==0)return 1;double ans=1;for(int i=1;i<=n;i++)ans*=i;return ans;}void Matrix_Muti(double mt[105][105],int n){int i,j,l,count;double m,save[105][105],di,ans[105 阅读全文
posted @ 2012-05-08 18:43 LETTers 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 【题目意思】给你很多个点,这些点满足a set of points (xi, yi) that satisfy xi < xj and yi > yj for all i < j.让你用一棵树把所有点连在一齐,树只能往上跟右生长,求树的总长度最小 【解题思路】类似石子合并,加上四边形优化就行了 定义状态 dp[i,j]表示点i到点j合并在一起的最小花费(树枝的长度), 状态转移方程:dp[i,j]= min(dp[i,k]+dp[k+1,j]+cost(i,j) ) i<k<j cost(i,j)=py[k]-py[j]+px[k+1]-px[i]; 当j固定时, 阅读全文
posted @ 2012-05-08 18:40 LETTers 阅读(136) 评论(0) 推荐(0) 编辑