摘要: 弱智商的碰到这种题就是跪啊!!!!题意:圆桌坐着N个人,每个人有一定的金币,金币总数能被N整除。每个人能给左右相邻的人一些金币,最终使得每个人的金币数目相等,求被转手金币数量的最小值。设 xi表示i号给i-1号xi金币,若xi为负,这表示i-1号给i号(-xi)个金币Ai表示i号一开始持有的金币则:对与第1个人:A1-X1+X2=M ===>X2=X1-(A1-M);令C1=A1-M 对于第2个人:A2-X2+X3=M ====>x3=x2-(A2-M) ====>x3=x1-(A1+A2-2M);===>x3=x1-C2; …… 对于第n个人:An-Xn+x1=M 这 阅读全文
posted @ 2013-01-01 15:50 z.arbitrary 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 题意:有N个部下,每个部下需要完成一项任务,第i个部下交待任务须花Bi分钟,然后他会立刻独立无间断地执行Ji分钟完成任务。求完成任务最短时间不能同时给多个部下交待任务,但部下可以同时执行他们各自的任务。贪心:按照执行任务时间从长到短一次执行。View Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define MAXN 1000+5int x[MAXN],y[MAXN];int n;struct 阅读全文
posted @ 2013-01-01 14:28 z.arbitrary 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 强大的STL啊,膜拜之!题意:有一个老式计算器,只能显示n位数字。有一天,你无聊了,于是输入一个整数k,然后反复平方,知道溢出。每次溢出,计算器会显示出结果的最高n位和一个错误标记,然后清除错误标记,继续平方。问如果一直这么下去,能得到的最大数是多少?View Code #include <iostream>#include <string>#include <sstream>#include <set>using namespace std;set<int> s;int T;int n,k;int solve(int k){ str 阅读全文
posted @ 2012-12-13 22:09 z.arbitrary 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 好久没写题了,可能还是自己的意志不够坚定,懒散。。一直觉得自己脑袋不够用,却一直不努力,可悲!!看了下纱布龙送来的刘汝佳新书,发现还是挺好的,里面有成熟详细的源码,对于我这种弱菜来说还需要借鉴别人优秀的写法和方式应该还是挺重要的今天看了一新汉诺塔问题,在老的汉诺塔改编的版本,没看解题思路前一点思路也没有,对这方面的解题方式以前也没做吧,弱菜就是应该多训练训练!!新汉诺塔:标准的汉诺塔上有n个大小各异的盘子。给定一个初始局面,求它到给定目标局面至少需要多少步。旧汉诺塔:将A柱子上的n个盘子,移到B柱子上旧汉诺塔 f(n)=f(n-1)+1+f(n-1)=(2^n)-1;f(1)=1;首先需要把编 阅读全文
posted @ 2012-12-11 16:57 z.arbitrary 阅读(913) 评论(0) 推荐(0) 编辑
摘要: 神一般的STL题,给跪了!!题意求一个点是否能到另一个点,到另一个点的最小步数因为给的不是连续的坐标,而是一段一段的坐标,又因为坐标范围比较大(1-10^9).觉得要用离散的方法,弱菜不会,看大神们都用STL,看了下,实在太神了,膜拜之!!View Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <queue>#include <set>#define 阅读全文
posted @ 2012-11-18 16:24 z.arbitrary 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 好吧,又抄了一篇,嘿嘿--http://www.cnblogs.com/Missa/archive/2012/10/11/2719943.html给你一个n问求使得 a1+a2+..ak==n时 a1*a2*..ak最大。。a1 a2.....不相等。(没看懂题目意思。。)----我也没看懂以下转自http://blog.himdd.com/?p=1918思路:将一个数分成2份,如何分,使得这两个数乘积最大。答案是将这个数平分,证明是求x*(n-x)的最大值。基于这种思路,将N分成乘积最大的不相等的多份,应使得其中每份的数相差尽量少,即差值为1的等差数列为最理想状态。构造了一个等差数列以后,再 阅读全文
posted @ 2012-10-29 13:36 z.arbitrary 阅读(371) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/problemset/problem/231/C题意求一个序列中出现次数最多的数和它的次数,并且允许对这个序列中的数进行K次加1或不加分析:一开始看这题就想到是排序加二分,但是不知道怎么二分,哎还是太弱。。。看了下别人的题解是二分答案,就是出现的次数。View Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define MOD 100057#define MAXN 100050using n 阅读全文
posted @ 2012-10-08 11:03 z.arbitrary 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 题意是求最小生成树是否唯一,通过求次最小生成树的值与最小生成树的值是否相等来判断是否唯一prime算法:因为权值有可能是0,故初始化不能赋值0View Code #include <iostream>#include <cstdio>#include <cstring>#define MAXM 105#define INF 1000000000int g[MAXM][MAXM],use[MAXM][MAXM],f[MAXM][MAXM];int N,M,ans1,ans2;//use=1表示还没在最小生成树里的边,use=2表示在最小生成树里的边//f[i] 阅读全文
posted @ 2012-10-07 23:27 z.arbitrary 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 拓扑排序 阅读全文
posted @ 2012-10-07 16:45 z.arbitrary 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 划分树+二分,离线线段树 求区间小于等于p值的个数 阅读全文
posted @ 2012-09-24 12:21 z.arbitrary 阅读(272) 评论(0) 推荐(0) 编辑