2013年7月29日

SDKD Single training #6未完成题目

摘要: A SPOJ ORDERS http://www.spoj.com/problems/ORDERS/B SPOJ DIV15 【已整理】C SPOJ PARTPALI 【已整理】D SPOJ TAUT http://www.spoj.com/problems/TAUT/E SPOJ WMELON 【已整理】 阅读全文
posted @ 2013-07-29 21:33 Primo... 阅读(87) 评论(0) 推荐(0) 编辑

SPOJ - PARTPALI(数位dp)

摘要: 题意:输入两个数n, k,要求出存在的所有的“长度为k的回文数并且该数能整除n”的个数,思路,k到了20位,暴力果断的超时了,,,不管我如何优化,当n = 2的时候程序要都跑好久的然后看人家代码用的数位dp,复杂度仅有k*n,所以果断的ac了。状态:dp[i][j]表示第i位数字取模n后为j的情况个数。状态转移:dp[i+1][temp] = sum{dp[i][j], temp是模值为j时且第i位取h时的新模值,h = (0.....9)}代码如下:#include #include #define M 1005 long long dp[15][M]; int tt[25]; int .. 阅读全文
posted @ 2013-07-29 21:22 Primo... 阅读(146) 评论(0) 推荐(0) 编辑

SPOJ - WMELON(离散化+暴力or离散化+线段树)【待完善】

摘要: 题意:给出n个点坐标和他们各自的值,求满足条件"矩形内的点值的和不小于k"的最小矩形面积。1、离散+暴力思路,先对y坐标离散化,然后确定两条平行与x轴的直线,求两条直线内满足条件的最小的矩形面积。n^3的复杂度,过的有点危险。代码如下:#include #include #include #include #include using namespace std; #define M 1005 struct node{ int x, y, v; bool operator q; void solve(int i, int j) { int l, r, c... 阅读全文
posted @ 2013-07-29 19:52 Primo... 阅读(137) 评论(0) 推荐(0) 编辑

SPOJ - DIV15(数论)

摘要: 题意:给一个数字字符串,要求给出能被15整除的最大的数。思路:15是3和5的倍数,那么能够被15整除的的数,肯定也是3和5共同的整倍数。而3和5的倍数,有很有特点,3的倍数要求每位上的数字之和是3的整倍数,而5的倍数要求个位数上是0或者5.综合其特点,我们就可以找到思路了。。。如果数字中有即没有0有没有5的话,则该数字不符合条件,如果每位上的数字之和sum能被3整除,则该数字在个位数是0或5的前提下,按照大小顺序输出即可。否则要分成sum%3=1和sum%3=2两种情况考虑。sum%3=1,则sum需要减去1,4,7,10,13。。。。。。所以我们要从已存在的1..9中找到要删去的数字。如果没 阅读全文
posted @ 2013-07-29 16:45 Primo... 阅读(159) 评论(0) 推荐(0) 编辑