http://student.csdn.net/space.php?uid=237424&do=blog&id=20486



March 20th, 2011约瑟夫相关问题总结

http://hi.baidu.com/andimeo/blog/item/5b655ddde4ad30395882dd5a.html



题意:给出 n 个两两之和 sum,求出原来的 n 个数。
首先假定这个数列是有序的,我们把 s 也有序化
显然 a[1]+a[2]=s[1],a[1]+a[3]=s[2],那么a[2]+a[3]=?,这里我们可以通过枚举k值得到a[2]+a[3]=s[k]
注意这里解出来a[1],a[2],a[3]必须为整数方可进行下面
接下来我们用一个bool数组把上面三个和标记上,接下来看最小的和 s[x],显然s[x]=a[1]+a[4]
接下来吧a[1]+a[4],a[2]+a[4],a[3]+a[4]标记上,如果没有出现这个和那么构造不成立,返回
如果 k 不退出一直进行下去还可以将所有的情况都输出



March 20th, 2011POJ 2118 —— Firepersons



A(0) = 1 , A(1) = 1 , A(N) = X * A(N - 1) + Y * A(N - 2) (N >= 2).And we want to Calculate S(N) , S(N) = A(0)*A(0) +A(1)*A(1)+……+A(n)*A(n)。
(s[n-1],a[n]^2,a[n]*a[n-1],a[n-1]^2)=(s[n-2],a[n-1]^2,a[n-1]*a[n-2],a[n-2]^2)*A
A=
|1 0 0 0 |
|1 x^2 x 1 |
|0 2*x*y y 0 |
|0 y^2 0 0 |



给你n个正整数,让你分成三组 a,b,c,对每组所有数求和 Sa,Sb,Sc,使 Sa,Sb,Sc 中最大的值 big 尽可能小,输出最小可能的big。
Read the rest of this entry »



March 20th, 2011rsync 原理

http://www.samba.org/rsync/how-rsync-works.html

http://rsync.samba.org/tech_report/

http://wangyuanzju.blog.163.com/blog/static/130292010101252632998/



题目描述:给定x,定义S(x)为x数字各个位之和(参考ZOJ 3327)
找一个比x大的最小的友谊数y,S(x)=S(y)那么x和y就互为友谊数
贪心即可 分几种情况:
(1)只有一位,那么高位+1,低位-1 如a=2,b=11
(2)个位是0,找到第一个非0位j,在第j+1位+1(特判进位)把数字尽量填在低位,如 a=2800 b=3007 a=9100 b=10109
(3) 一般情况和(2)类似 a=19 b=28



March 16th, 2011ZOJ 3346 —— Number Game

Read the rest of this entry »



March 15th, 2011POJ 1012 —— Joseph

约瑟夫问题,有 k 个好人和 k 个坏人,选择一个 m 开始报数,要求前 k 个被选中的人都是坏人。
假设我们在一次报号过程中,编号 s 被杀死,那么下一次将杀死哪一个呢?(为处理方便假设从0开始报号)
Read the rest of this entry »



给定一个 X,要找出一些序列,使得
1 = X0, X1, X2, …, Xm = X
其满足单调增,且对于相邻两个数 x[i],x[i+1],满足 x[i+1]=k*x[i](k>=2),
求能获得的最长长度以及该长度的个数。

对 X 进行分解,欧拉函数。
X = a1^p1*a2^p2....an^pn

那么最长长度就是 p1 + p2 + ... + pn;
Read the rest of this entry »



March 14th, 2011POJ 2566 —— Bound Found

寻找一个区间,使得区间内的数之和与t绝对值差最小。
Read the rest of this entry »



给定一个数n,求有多少种方法,可以分解 n,是的分解数的平方的和=n
且分解的数必须是连续的
n=a^2+(a+1)^2+...(a+k)^2
=a^2+ka^2+(2a+2ak)*k/2+k(k+1)(2k+1)/6
6n=6a^2+6ka^2+6ak(1+k)+k(k+1)(2k+1)
=(6a^2+6ak+k(2k+1))(1+k)
>=(6+6k+k(2k+1))(1+k)
>=(2k^2+7k+6)(1+k)>=2(k+1)^3

k<=pow(3n,1/3)-1
枚举 k ,算出 a = (-k+sqrt(k^2-2/3*k(2k+1)+4n/(k+1)))/2
再看 (6a^2+6ak+k(2k+1))(1+k) 是否等于 6*n ,如果等于,则找到了一组解。



页面较宽,你可能需要拖到下面的滚动条看右边的内容。。。
编译:

g++ -o is_user_variables.so is_user_variables.cc -I/root/src/mysql-5.1.56/sql -I/root/src/mysql-5.1.56/include -I/root/src/mysql-5.1.56/regex -I/root/src/mysql-5.1.56 -g -O2 -Wall -g -fno-rtti -fno-exceptions -shared -fPIC -DPIC -DMYSQL_DYNAMIC_PLUGIN -L/usr/local/mysql/lib -rdynamic -L/usr/local/mysql/lib/mysql  -lz -lpthread -lcrypt -lnsl -lm -lpthread

安装:

mysql> INSTALL PLUGIN user_variables SONAME 'is_user_variables.so';

看下:
mysql> show plugins;
+----------------+--------+--------------------+----------------------+---------+
| Name           | Status | Type               | Library              | License |
+----------------+--------+--------------------+----------------------+---------+
| binlog         | ACTIVE | STORAGE ENGINE     | NULL                 | GPL     |
| CSV            | ACTIVE | STORAGE ENGINE     | NULL                 | GPL     |
| MEMORY         | ACTIVE | STORAGE ENGINE     | NULL                 | GPL     |
| MyISAM         | ACTIVE | STORAGE ENGINE     | NULL                 | GPL     |
| MRG_MYISAM     | ACTIVE | STORAGE ENGINE     | NULL                 | GPL     |
| handlersocket  | ACTIVE | DAEMON             | handlersocket.so     | BSD     |
| USER_VARIABLES | ACTIVE | INFORMATION SCHEMA | is_user_variables.so | GPL     |
| InnoDB         | ACTIVE | STORAGE ENGINE     | ha_innodb_plugin.so  | GPL     |
+----------------+--------+--------------------+----------------------+---------+

mysql> SELECT * FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME='USER_VARIABLES'\G
*************************** 1. row ***************************
           PLUGIN_NAME: USER_VARIABLES
        PLUGIN_VERSION: 0.16
         PLUGIN_STATUS: ACTIVE
           PLUGIN_TYPE: INFORMATION SCHEMA
   PLUGIN_TYPE_VERSION: 50156.0
        PLUGIN_LIBRARY: is_user_variables.so
PLUGIN_LIBRARY_VERSION: 1.0
         PLUGIN_AUTHOR: yajun (chenyajun@chenyajun.com)
    PLUGIN_DESCRIPTION: Lists the user varables for all sessions
        PLUGIN_LICENSE: GPL
1 row in set (0.00 sec)

Read the rest of this entry »



//抽屉原理 有c个孩子,n个邻居
//选一个邻居子集去访问,然后使得每个孩子分到的都相等
//问题等价于在一个序列中,是否存在一个连续的子序列,使得其之和%c==0




© 2008 - 2012 道阻且长 | iKon Wordpress Theme | Powered by Wordpress 3.3.2