写几组数据就会发现规律了啊。。可是我是竖着看的。。。还找了半天啊、、、
不过要用高精度来写,水题啊,就当熟悉一下java了啊。
num[i] = 2*num[i-1]-num[i-2-k]。
1513. Lemon Tale
Time limit: 1.0 second
Memory limit: 64 MB
Background
For each progr...
分类:
其他好文 时间:
2014-10-10 21:18:54
阅读次数:
155
题目地址:Ural 1152
初学状压DP,原来状压只是用到了个位运算。。
很水的状压DP。注意四则运算的优先级是高于位运算的。。也就是说如果既用到了四则运算,也用到了位运算,要想先算位运算的话,要将位运算加括号。因为这个地方调了好久。。
代码如下:
#include
#include
#include
#include
#include
#include
#include
...
分类:
其他好文 时间:
2014-10-06 17:52:10
阅读次数:
187
题目地址:Ural 1586
先定义一个prime三维数组来记录素数,若i*100+j*10+k为素数,则标记prime[i][j][k]为1,否则为0.这样对后面的处理很方便。
然后定义一个dp三维数组,dp[n][i][j]表示当前n位的十位数字为i,个位数字为j时的素数个数,这时候状态要从prime[k][i][j]为素数时转移过来,所以状态转移方程为:
if(prime[j][k][...
分类:
其他好文 时间:
2014-10-06 02:31:19
阅读次数:
175
题目地址:Ural 1167
感觉这题的思路类似于背包的做法。。
先预处理出来每个马与之前所有的马的0的数量和1的数量,用数组a[0][i]和a[1][i]来表示。
然后再用数组dp[i][j]来表示当前第i个马槽最右端为第j个马时的最小值。
dp的时候先枚举马槽,再用n*n枚举当前的马槽要选用的马的区间。这样总时间复杂度是O(n*n*k)。
代码如下:
#include
#incl...
分类:
其他好文 时间:
2014-10-05 19:42:38
阅读次数:
204
题目地址:Ural 1073
DP水题。也可以说是背包。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int INF=0x3f3f3f3f;
#define LL ...
分类:
其他好文 时间:
2014-10-05 11:40:28
阅读次数:
203
题目地址:Ural 1353
定义dp[i][j],表示当前位数为i位时,各位数和为j的个数。
对于第i位数来说,总可以看成在前i-1位后面加上一个0~9,所以状态转移方程就很容易出来了:
dp[i][j]=dp[i][j]+dp[i][j-1]+dp[i][j-2]+.......+dp[i][j-9];
最后统计即可。
代码如下:
#include
#include
#incl...
分类:
其他好文 时间:
2014-10-04 00:13:25
阅读次数:
214
题目地址:Ural 1146
这题是求最大子矩阵和。方法是将二维转化一维。
首先用n*n的方法来确定矩阵的列。需要先进行预处理,只对每行来说,转化成一维的前缀和,这样对列的确定只需要前后两个指针来确定,只需要用前缀和相减即可得到。前后两个指针用n*n的枚举。
确定好了哪几列,那么再确定行的时候就转化成了一维的最大连续子序列的和。再来一次O(n)的枚举就可以。
这样,总复杂就变成了O(n^3...
分类:
其他好文 时间:
2014-10-03 22:40:35
阅读次数:
205
题目地址:Ural 1119
因为还有一个可不可以穿的问题,所以需要再加一维。0代表可穿不可穿,可穿设置成0,不可穿就设置成无穷大。1代表当前这格的最短距离。
代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
...
分类:
其他好文 时间:
2014-10-03 19:07:25
阅读次数:
237
Description
The “U.S. Robots” HQ has just received a rather alarming anonymous letter. It states that the agent from the competing «Robots Unlimited» has infiltrated into “U.S. Robotics”. «U.S. R...
分类:
其他好文 时间:
2014-09-26 22:34:29
阅读次数:
370
本题是利用后缀数组求最长的回文串。方法是将字符串反转之后拼接到原来的字符串末尾,中间用一个没有出现过的分割符隔开,原因是防止最长公共前缀横跨两个串。之后分别枚举回文串的中点,以及回文串长度是奇数还是偶数,看一下对应位置的最长公共前缀即可。这里的求最长公共前缀要处理RMQ问题,线段树固然可以解决,但是...
分类:
其他好文 时间:
2014-09-26 22:10:08
阅读次数:
142