上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 44 下一页
摘要: 题目链接能AC还是很开心的...此题没有POJ2778那么难,那个题还需要矩阵乘法,两个题有点相似的。做题之前,把2778代码重新看了一下,回忆一下当时做题的思路,回忆AC自动机是干嘛的...状态表示dp[i][j]长度为i的以j串为结束的最小改变数目。AC自动机预处理一下,然后DP。卡内存+不知道... 阅读全文
posted @ 2013-07-28 14:01 Naix_x 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 状态压缩DP,算sum,本来是枚举的,结果TLE了。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MOD 1000000007 8 int p[10001]; 9 int hash[1 0; j -= lowbit(j))39 {40 hash[i] += hash[i-lowbit(j)];41 if(hash[i] > MOD)42 hash[i] -= MOD... 阅读全文
posted @ 2013-07-27 16:30 Naix_x 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 题目链接比赛的时候一直想用树状数组,但是树状数组区间更新之后,功能有局限性。线段树中的lz标记很强大,这个题的题意也挺纠结的。k = 1时,从a开始,插b个花,输出第一个插的位置,最后一个的位置,一个都没插,输出不能插。k = 2时,将[a,b]区间都清空,输出这个区间上本来有多少朵花。主要是k = 1的时候,很难弄。给出区间[a,b]要找到第一个空花瓶,空花瓶的个数 = 总的-插花的个数这肯定是一个单增的,所以利用二分求下界,这个位置,就是第一个空花瓶的位置,最后一个花瓶的位置需要特判一下,确定是第几个空花瓶,剩下的跟算第一个差不多。主要是很多细节要注意,写代码要各种严谨.... 1 #i. 阅读全文
posted @ 2013-07-27 11:33 Naix_x 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 果断对Tarjan不熟啊,Tarjan后缩点,求树上的最长路,注意重边的处理,借鉴宝哥的做法,开标记数组,标记自己的反向边。 1 #pragma comment(linker, "/STACK:1024000000,1024000000") 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 200001 9 #define M 2000001 10 #define INF 0x3f3f3f3f 11 struct node 12 { 13... 阅读全文
posted @ 2013-07-27 09:24 Naix_x 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 题目链接思路就很难想+代码实现也很麻烦,知道算法后,已经写的很繁琐而且花了很长时间,200+,好久没写过这么长的代码了。 1 #pragma comment(linker, "/STACK:1024000000,1024000000") 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std; 10 #define maxn 100101 11 struct node 12 { 13 int l,r; 14 } t... 阅读全文
posted @ 2013-07-26 12:43 Naix_x 阅读(407) 评论(1) 推荐(0) 编辑
摘要: 题目链接我还是图样啊....比赛的时候没敢暴力去搜... 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define LL __int64 9 char dp[301][301][301];10 int p[301][301];11 int n,m;12 int dfs(int x,int y,int step)13 {14 int i,j,k;15 if(step == 1)16 return 1;17 else... 阅读全文
posted @ 2013-07-25 19:51 Naix_x 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 题目链接随机算法使劲水...srand((unsigned)time(0))比srand(NULL)靠谱很多,可能是更加随机。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define LL __int64 9 int a[501][501],b[501][501],c[501][501];10 int main()11 {12 int i,j,k,flag,n;13 srand((unsigned)time(0));14 ... 阅读全文
posted @ 2013-07-24 21:30 Naix_x 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 题目链接虽然我不懂... 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define LL __int64 7 LL p[1001],o[1001]; 8 LL x,y; 9 LL ext_eulid(LL a,LL b)10 {11 LL t,d;12 if(b == 0)13 {14 x = 1;15 y = 0;16 return a;17 }18 d = ext_eulid(b,a%b);19 ... 阅读全文
posted @ 2013-07-24 13:39 Naix_x 阅读(178) 评论(2) 推荐(0) 编辑
摘要: 题目链接本来就对N*log(N)算法不大会....然后各种跪了,求出最长不下降+最长不上升-最少相同元素。求相同元素,用二分求上界搞的。代码里4个二分.... 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int d[200001]; 8 int dd[200001]; 9 int f[200001]; 10 int a[200001]; 11 int same[200001]; 12 int n; 13 int bin1(int size,int x)... 阅读全文
posted @ 2013-07-24 11:19 Naix_x 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 题目链接概率问题,像是概率论上学的均匀分布,是不是呢,忘了。。。概率同面积有关系,我写的各种搓,然后此题格式十分变态,=前有的时候俩空格,有的时候一个空格。代码各种搓。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define PI 3.141592653 8 #define eps 1e-9 9 int main()10 {11 int t,cas = 1;12 double n,m,d,r,S;13 double t11,t12,t13,t... 阅读全文
posted @ 2013-07-22 21:55 Naix_x 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 题目链接不1Y都对不住看过那么多年的球。dp[i][j]表示i队进入第j轮的概率,此题用0-1 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 double dp[501][501]; 8 double p[501][501]; 9 int main()10 {11 int n,i,j,mod,c,k,ans;12 double maxz;13 while(scanf("%d",&n)!=EOF)14 {15 if(n = (1<<(i-1)))38... 阅读全文
posted @ 2013-07-22 18:21 Naix_x 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 题目链接很早之前就看过这题,思路题把,确实挺难想的,黑书248页有讲解。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int p[10001]; 8 struct node 9 {10 int id;11 int x;12 int pos;13 }num[10001];14 int flag[10001],minz;15 int cmp1(node a,node b)16 {17 return a.x < b.x;18 }19 int c... 阅读全文
posted @ 2013-07-22 16:31 Naix_x 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题目链接题意很扯,就是给一棵树,每个结点有个值,然后把图劈成两半,差值最小,反正各种扯。2B错误,导致WA了多次,无向图,建图搞成了有向了.... 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define LL __int64 8 struct node 9 {10 int u,v,next;11 }edge[2000001];12 LL p[100001];13 LL dp[100001];14 int first[100001];15 int o[1000... 阅读全文
posted @ 2013-07-22 10:29 Naix_x 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 以前做过的一个题,忘记/gcd了,看来需要把以前的东西看一下啊。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define LL long long 8 int p[21],flag[21]; 9 LL gcd(LL a,LL b)10 {11 return b == 0?a:gcd(b,a%b);12 }13 int main()14 {15 int n,i,j,ans,num,m;16 LL temp;17 while(scanf(... 阅读全文
posted @ 2013-07-21 20:21 Naix_x 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题目链接树形DP很弱啊,开始看题,觉得貌似挺简单的,然后发现貌似还可以往回走...然后就不知道怎么做了...看看了题解http://www.cnblogs.com/wuyiqi/archive/2012/01/09/2316758.html画画题解中的三种情况,还是可以理解的。设dp[0][s][j]表示从s(当前根节点)出发,走 j 步,回到s所能获得的最大权值 dp[1][s][j]表示从s(当前根节点)出发,走j步,不回到s所能获得的最大权值现在我们就可以分配背包容量了:父节点与子节点分配背包容量,从而设计出状态转移方程主要思想:s返回,t返回 s不返回,t返回(走向t子树,t子树返回之 阅读全文
posted @ 2013-07-21 16:41 Naix_x 阅读(291) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 44 下一页