上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 38 下一页
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4283题意:给定一个长度为n的序列表示人,每个人都有一个愤怒系数与之对应。他们依次上台,当第k个人上台时,他的愤怒值为(k - 1)*Di. 给定一个小黑屋相当于栈,来调整上台顺序使总的愤怒值最小思路:区间DP dp[i][j]表示第i个人到第j个人区间上台愤怒值的最小值。对于区间[x][y]如果x在第i个位置上台,则有x + 1,x + 2,.....,x+i,x ,x + i + 1.....y则将整个区间分为[x+ 1][x+i]和[x+i+1][y]两个小区间这样局部最优的思想就出来了。dp[x][y 阅读全文
posted @ 2012-09-12 14:56 E_star 阅读(203) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4287题意:给出n个手机数字序列,m个英文组合,求每个数字序列对应的可能的英文组合在下边的出现了多少个。思路:才开始想复杂了,其实只要用一个map即可。View Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <stack>#includ 阅读全文
posted @ 2012-09-11 23:47 E_star 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 天津赛区网络赛的两道题目1:http://acm.hdu.edu.cn/showproblem.php?pid=4282题意:给你一个K (0 < K < 2^31) ,求正整数X,Y,Z满足X^Z + Y^Z + XYZ = K,有多少组。(X < Y, Z > 1)思路:如果暴力枚举的话,肯定会超时。这里关键是31.因为1<=X < Y 所以Y>=2所以Z<31;对于X他最大肯定小于5000(因为50000^2 > 2^31)所以我们只要枚举x和z然后在区间[x + 1,5000]二分查找即可O(50000*31*log(50000)) 阅读全文
posted @ 2012-09-11 23:40 E_star 阅读(274) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4284题解:http://www.cnblogs.com/E-star/archive/2012/09/11/2680992.htmlView Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <stack>#include <set 阅读全文
posted @ 2012-09-11 23:19 E_star 阅读(184) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4282题解:http://www.cnblogs.com/E-star/archive/2012/09/11/2680992.htmlView Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <stack>#include <set 阅读全文
posted @ 2012-09-11 23:15 E_star 阅读(335) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4280题意:给定平面上n个点的坐标,最左边的点为源点,最右边的点为汇点,给出m条边的容量求最大流。思路:才开始理解错了题意,For safety, no two routes are cross or overlap and no routes will pass an island except the departing island and the arriving island。以为要处理线段不能相交什么的,不知道怎么做了。原来直接见图套模板即可,题目保证不会相交。为此我和von纠结了好久。。View 阅读全文
posted @ 2012-09-11 23:10 E_star 阅读(544) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4279题意:给出a,b两个数,1<=a<=b 如果a,b不互质,且a%b != 0则说明a是b的特殊数字f[i]表示i拥有的特殊数字的个数,如果f[i]是奇数,那么i就是real numbers给出区间[x,y]求区间内的real numbers的数量。思路:打标找规律,真心不好发现这规律;大于12之后 d[x] = x/2 -1或者d[x] = x/2 - 2;(d[x]表示1到x拥有的real numbers的数量)发现在遇到平方数是转变原来-1变为-2,否则-2变为-1。 p^2 <= 阅读全文
posted @ 2012-09-11 23:03 E_star 阅读(188) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4278题意:一个特殊的汽车行程计数器,当每个位出现3或者8时直接跳到下一位;0 1 2 4 5 6 7 910 11 12 14 15 16 17 1920 21 22 24 25 26 27 29......思路:YY发现其实可以映射到8进制数,(0 - 9)表示10进制数,将(0 1 2 4 5 6 7 9 )映射到(0 - 8)其实就是8进制的表示。View Code #include <iostream>#include <cstdio>#include <cstring 阅读全文
posted @ 2012-09-11 22:51 E_star 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 哈哈。。。几年一下自己手写的第一个Java大整数程序:import java.util.*;import java.io.*;import java.math.*;public class Main { public static void main(String agrs[]){ Scanner cin = new Scanner(System.in); while (cin.hasNextInt()){ int n = cin.nextInt(); for (int i = 1; i <= n; ++i){ BigInteger a = cin.nextBigIntege... 阅读全文
posted @ 2012-09-10 18:52 E_star 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 字符串处理:unix的ELF哈希函数unsigned int ELFHash(char* str){ unsigned int hash = 0; unsigned int x = 0; while (*str){ hash = (hash << 4) + (*str++); if ((x = hash & 0xF0000000L) != 0){ hash ^= (x >> 24); hash &= ~x; } } return (hash & 0x7FFFFFFF);} BK... 阅读全文
posted @ 2012-09-08 10:17 E_star 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 255pt:题意:给一个01矩阵,要求改变一行和一列是它的总和最大,求最大的总和,枚举行列,然后取抑或O(n^3)做即可;#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <stack>#include <set>#include <map>#include <string>#define CL(a 阅读全文
posted @ 2012-09-07 21:26 E_star 阅读(289) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2947题意:工人生产不同的部件需要不同的时间,最少需要3天最多需要9天。给出n种部件和m条记录,每条记录包括该工人生产部件的总数k和他开始生产时间和结束时间(只给出是周几,不给出具体时间),之后给出这K个部件跟的所属的种类。最后求出生产这n种部件分别所需要的时间。思路:高斯消元:例子来讲首先我们能够列出方程(x + y)%7 = 4;(2*x + y)%7 = 5;(x + 2*y)%7 = 0;这里直接套高斯消元模板就行,关键是处理%7的情况,我们先按[0,6]计算结果最后再处理到[3,9];View Code #include < 阅读全文
posted @ 2012-09-05 11:19 E_star 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 高斯消元法,是线性代数中的一个算法,可用来求解线性方程组,并可以求出矩阵的秩,以及求出可逆方阵的逆矩阵。高斯消元法的原理是:若用初等行变换将增广矩阵 化为 ,则AX = B与CX = D是同解方程组。所以我们可以用初等行变换把增广矩阵转换为行阶梯阵,然后回代求出方程的解。以上是线性代数课的回顾,下面来说说高斯消元法在编程中的应用。首先,先介绍程序中高斯消元法的步骤:(我们设方程组中方程的个数为equ,变元的个数为var,注意:一般情况下是n个方程,n个变元,但是有些题目就故意让方程数与变元数不同)1. 把方程组转换成增广矩阵。2. 利用初等行变换来把增广矩阵转换成行阶梯阵。枚举k从0到equ 阅读全文
posted @ 2012-09-05 09:49 E_star 阅读(491) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1026题意:给定长度为n的序列key[],key[i](表示第i个字符置换一次后跑到key[i]的位置)然后给出数字k以及字符串seq[],输出经过k次加密后的字符串,字符串的长度总是满足长度为n如果后边无字符用空格代替。每一次的加密过程为:例如 4 5 3 7 2 8 1 6 10 9,Hello Bob, 然后从左到右让字符串的每一个字符与一个数字对应:4 5 3 7 2 8 1 6 10 9H e l l o B o b ‘ ’ ‘ ‘假如加密后的到的新字符... 阅读全文
posted @ 2012-09-04 19:39 E_star 阅读(204) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3270题意:给定N头牛的身高,要求你通过每次交换两头牛的位置使其按身高从小到大排序,身高各不相同。假设交换ai,aj两头牛的位置则花费的时间为ai + aj,求用最小的时间花费。思路:黑书P248详细解释。cost += sum + Min((k – 2) * ti, ti + (k + 1) * minn);前一个式子:sum + (k – 2) * ti,ti是所在置换群的最小值比如:8 4 5 3 2 7目标 2 3 4 5 7 8,里边有两个置换群(8 2 7)(4 3 5)(这里是每个置换都可以写成若干互不相交的循环的乘积(黑书P 阅读全文
posted @ 2012-09-03 21:18 E_star 阅读(245) 评论(0) 推荐(0) 编辑
摘要: hdu 2993MAX Average Problemhttp://acm.hdu.edu.cn/showproblem.php?pid=2993这题都整死我了,代码基本上和别人AC的都快一样了还是不对。郁闷死了快。。最后终于发现了错误点自判断斜率时y1*x2 <= y2*x1 如果用整型就会超数据类型肯定会错,而上边的用整型可以过,不过最好用实型因为毕竟k的大小不确定。。。这题的详细解释http://www.docin.com/p-47950655.html例2 这里在转到0-n个点求斜率的时候不好理解。数形结合以形住树。View Code #include <iostream& 阅读全文
posted @ 2012-08-28 11:34 E_star 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 做了几道前几天多校的单调队列优化DP题目:hdu 4326Dragon Ballhttp://acm.hdu.edu.cn/showproblem.php?pid=4362题意:Sean的到一个地图上边标有什么时刻什么地点会出现龙珠,龙珠在每一时刻出现在同一行里,Sean每一时刻只能去一个龙珠,给出他取龙珠所消耗的能量以及移动所消耗的能量。求他在每个时间段取龙珠的最小能量消耗;思路:dp[i][j]表示在i时间取第j个龙珠的最小能量消耗则有dp[i][j] = min(dp[i - 1][k],abs(p[i - 1][k].pos - p[i][j].pos)) + p[i][j].w;此方 阅读全文
posted @ 2012-08-27 08:54 E_star 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 单调队列:http://baike.baidu.com/view/3771451.htmfoj 1894志愿者选拔http://acm.fzu.edu.cn/problem.php?pid=1894题意:中文略..思路:就是很单纯的单调队列,最最入门的单调队列,而且是很形象的排队问题。View Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#incl 阅读全文
posted @ 2012-08-26 18:48 E_star 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 很长时间没做TC了,再说自己做的也确实相当少,所以不是很熟+思路来的比较慢所以做得不是多么好,只做出了250pt,500pt的思路对还没敲完就结束了。话说TC,CF什么的真的很锻炼人的思维能力可就是老在晚上举行,所以弄得....250pt就是求一个x + z = d;2*x + 4*y + 4*z = f;y + z = t;推出公式计算即可:500pt题意:给定你一个序列,里面含有一个-1其余都是非负数另开一个栈,按如下操作进行:遇到大于0的进栈,遇到0取栈顶两个元素相加再放进栈,最后得到栈顶的元素为wantresult.给出序列和wantresult,问-1这个位置如果是0就输出0,如果是 阅读全文
posted @ 2012-08-25 20:41 E_star 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 容斥定理学习:http://www.cppblog.com/vici/archive/2011/09/05/155103.aspxhdu 1796How many integers can you findhttp://acm.hdu.edu.cn/showproblem.php?pid=1796题意:给定n和一个大小为m的集合,集合元素为非负整数。求1...n - 1内能被集合里任意一个数整除的数字个数。n<=2^31,m<=10思路:首先明白对于集合[1,n]内能被a整除的数的个数为n/a,既能被a整除又能被b整除的数的个数为n/lcm(a,b)(a,b的最小公倍数);容斥原理 阅读全文
posted @ 2012-08-24 20:43 E_star 阅读(432) 评论(0) 推荐(0) 编辑
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 38 下一页