石子归并 思路: 经典动态规划——归并类问题; 我们把状态划为n个,即1-n的n个长度为n个状态; 那么,每个长度为i的状态都可以由i-1个长度为i-1的状态推出; 所以,dp转移方程: dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1 ...
分类:
其他好文 时间:
2017-04-22 09:14:10
阅读次数:
108
UVA 12009 - Avaricious Maryanna 题目链接 题意:给定一个n。求出n个数位组成的数字x,x^2的前面|x|位为x 思路:自己先暴力打了前几组数据,发现除了1中有0和1以外,其它数据都是由前一项往上再加入一位得到的,因此设新数字为(a?10k+x)2=(a?10k)2+x ...
分类:
其他好文 时间:
2017-04-21 20:19:10
阅读次数:
125
#include #include using namespace std; char s[10][10]; int ax,ay,bx,by,n,m,k; int t[4][2]={1,0,-1,0,0,1,0,-1},vist[10][10],flag; void dfs(int x,int y,... ...
分类:
其他好文 时间:
2017-04-21 00:36:04
阅读次数:
140
memset的功能是将一块内存中的内容以单个字节逐个拷贝的方式放到指定的内存中去。 如memset(dp,0,sizeof(dp))其中dp为一个int型数组,因为int为4个字节,那么每一个字节的位置上都放 00000000 最后放的就是 00000000 00000000 000000000 0 ...
分类:
其他好文 时间:
2017-04-21 00:20:50
阅读次数:
139
弱弱的买了随机算法的视频水了一下2333 真的是好神 大概就是判AB=C,这样的话再等式两边同乘一个1*n的矩阵H(貌似有个专业的名字),这样矩阵乘法的复杂度就是n^2的。 因为矩阵乘法是有结合律的,所以就是先算出HA(蛤??),再算(HA)*B,然后和HC看是不是相等就好 get高端暴力姿势 ...
分类:
其他好文 时间:
2017-04-19 10:05:24
阅读次数:
248
1 #include 2 using namespace std; 3 #define INF 0x3f3f3f3f 4 #define M(a, b) memset(a, b, sizeof(a)) 5 const int N = 1e3 + 5; 6 struct Edge { 7 int fr... ...
分类:
编程语言 时间:
2017-04-17 21:51:06
阅读次数:
244
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1737 题意: 思路: 树的重心。 树的重心就是其所以子树的最大的子树结点数最少,删除这个点后最大连通块的结点数最小,也就说各个连通块尽量平衡。 这道题的话就是先求一个重心, ...
分类:
其他好文 时间:
2017-04-17 19:48:23
阅读次数:
293
1 #include <iostream> 2 #include <cstdio> 3 #include<queue> 4 #include<cstring> 5 #include <algorithm> 6 using namespace std; 7 int G[501][501]; 8 boo ...
分类:
其他好文 时间:
2017-04-17 14:39:05
阅读次数:
211
Description 一个排列,满足一些限制,形成一个树形结构,求方案数\(T\leqslant 5,n\leqslant 1\times 10^3\) Solution 树形DP. \(f[i][j]\)表示\(i\)是在他的子树中排名为\(j\). 也是暴力合并信息,复杂度分析同上题. Cod ...
分类:
其他好文 时间:
2017-04-17 09:15:48
阅读次数:
249
问题 二维费用的背包问题是指:对于每件物品,具有两种不同的费用;选择这件物品必须同时付出这两种代价;对于每种代价都有一个可付出的最大值(背包容量)。 问怎样选择物品可以得到最大的价值。 设这两种代价分别为代价1和代价2,第i件物品所需的两种代价分别为a[i]和b[i]。两种代价可付出的最大值(两种背 ...
分类:
其他好文 时间:
2017-04-16 22:19:05
阅读次数:
216