上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 32 下一页
摘要: 数学题(模运算)题意:详细的翻译http://www.cnblogs.com/devymex/archive/2010/08/28/1810480.html简单的题意:给你一个字符串(可能有空格,最多1024字符),每个字符代表一个数字,因为最多有256个字符,所以这个字符串其实是表示一个256进制的数字。但这还没完,在这个256进制数字要再加两位,组成一个新的256进制数字,这个数字要能被g=34943(这是个十进制数字)整除,要你输出新添加的那两个数字是什么,这两个数字要以16进制的形式输出,用空格隔开思路:把原来的256进制数字先转为十进制数x,那么再添加两位后,其实原本的数字翻了2倍, 阅读全文
posted @ 2013-01-19 20:00 Titanium 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 欧拉函数用符号φ表示,φ(n)表示小于等于n的正整数数中与n互质的数的个数φ(1)=1 ; 1φ(2)=1 ; 1φ(3)=2 ; 1,2φ(4)=2 ; 1,3φ(5)=5 ; 1,2,3,4φ(6)=2 ; 1,5 φ(7)=6 ; 1,2,3,4,5,6φ(8)=4 ; 1,3,5,7…………………………其中当n为素数时,φ(n)=n-1; 然后再将这个问题推广到一般性——1.怎么求任意的φ(n)。2.怎么求n以内所有的φ(n)1.对于任意的n,φ(n)=n x (1-p1) x (1-p2) x (1-p3) …………(1-pm)其中p1,p2,p3……pm是n能分解出... 阅读全文
posted @ 2013-01-19 16:44 Titanium 阅读(548) 评论(0) 推荐(0) 编辑
摘要: 数论题(筛法求救欧拉函数)题意:输入n,[1,50000],定义一个二元组(x,y),满足1<=x,y<=n , 且x和y互质 , 要求输出二元组的个数。注意好像(2,3),(3,2)算作两个答案,所以我们只要求出一组答案再乘以2即可关键是怎么找出这个二元组,其实就是筛法求欧拉函数我们约定x<y且x与y互质,那么我们将y从1枚举到n,对于每个y,找出所有小于它并且与它互质的x的个数,这不就是求y的欧拉函数吗?而y从1到n,不就是求n以内所有数字的欧拉函数吗?所以最后的答案,就是n以内每个数字的欧拉函数值的累加和*2-1,没什么减1,是因为一个特殊的数字1,1的欧拉函数值为1( 阅读全文
posted @ 2013-01-18 23:54 Titanium 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 今天做了一道本原勾股数组的入门题,读了数论概论的对应章节,自己也在纸上证明了一次,现在做个简单记录数论经典问题:构造本原勾股数组(PPT):a^2+b^2=c^2 , 其中a,b,c两两互质勾股数组的个数是无限个,一般的勾股数组并没有太大的研究价值,但是本原勾股数组(PPT)则有,PPT满足a,b,c两两互质,其他的勾股数组都是通过PPT不断翻倍得到的,所以研究本原勾股数组的本质和性质很重要1.证明a和b必定一奇一偶,并可以推导出c一定是奇数 。 证明后我们约定a是奇数,b是偶数,c为奇数,但a和b的大小不能确定2.a^2+b^2=c^2 ---> a^2=c^2-b^2=(c+b)*( 阅读全文
posted @ 2013-01-18 22:58 Titanium 阅读(1450) 评论(0) 推荐(0) 编辑
摘要: 数论经典问题:构造本原勾股数组(PPT):a^2+b^2=c^2 , 其中a,b,c两两互质题意:给你一个n,让你找出一些勾股数组,a^2+b^2=c^2 , 需要满足a<b<c<=n 。 对于每个case题目首先需要你输出这些勾股数组中PPT的个数,然后再输出一个数字,这个数字是n-所有勾股数组用掉的数字个数例如:103,4,5 是唯一一组PPT解,所以第一个输出的数字是1而另外的勾股数组包括 6 8 10 。 那么一共用掉的数字有3,4,5,6,7,8,那么没有用到的数字有4个,所以第二个数字输出4————————————————————————————————题意说完了 阅读全文
posted @ 2013-01-18 20:52 Titanium 阅读(614) 评论(0) 推荐(0) 编辑
摘要: 数学题题意(就是因为读错题意而wa了一次):给一个数字n,范围在[1,2^23-1],这个n是一系列数字的最小公倍数,这一系列数字的个数至少为2例如12,是1和12的最小公倍数,是3和4的最小公倍数,是1,2,3,4,6,12的最小公倍数,是12和12的最小公倍数………………那么找出一个序列,使他们的和最小,上面的例子中,他们的和分别为13,7,28,24……显然最小和为7这个题目一开始没有头绪,写了一个暴搜程序来找答案,然后一目了然首先假设我们知道了一系列数字a1,a2,a3……an,他们的LCM是n,那么什么时候他们是最优解呢,当他们两两互质的时候为了方便我们以两个数来说明问题。a和b的L 阅读全文
posted @ 2013-01-18 11:29 Titanium 阅读(2052) 评论(0) 推荐(0) 编辑
摘要: 生成随机数据一.生成int型数据简单地生成n个随机数据(数字大小在int范围内)#include <cstdio>#include <cstdlib>#include <cmath>int main(){ int n=60; for(int i=1; i<=n; i++) printf("%d ",rand()); printf("\n"); return 0;}每次运行该程序得到的随机数都是一样的,因为种子相同改变种子,每次运行程序可以得到不同的随机数得到种子需要一个函数srand(m); 参数m决定了种子,那 阅读全文
posted @ 2013-01-18 09:23 Titanium 阅读(905) 评论(0) 推荐(0) 编辑
摘要: DP构建(仿照Floyd)这题说难挺难的,现在想想好像也不太难,是因为想复杂了。其实这题的要求不算多,它仅仅是要求最后转换回到出发时的那种硬币并且获利大于0.01,而转换次数不能超过n次,转换次数越少越好,然后输出最短的路径。注意:题目并没有说要你获利最大,只是是获利>=0.01即可,另外题目对路径并没有什么特殊要求,仅仅是要求不能超过n,在路径长度相同的情况任意一条都可以的。所以我们就抓住一点:转换次数!!!!!!也就是说每转换一次,我们就去找所有的货币,看他们回到自己的时候那些货币的获利已经大于0.01了,如果有货币的获利已经大于0.01了,那么我们的算法就结束了,就输出这种货币的转 阅读全文
posted @ 2012-12-26 19:55 Titanium 阅读(1274) 评论(0) 推荐(0) 编辑
摘要: DP(类似于矩阵链乘法)我们以sample来说明问题长度100,切的地方为25,50,75.那么无论怎么切最后都是剩下四段 [0,25] , [25,50] , [50,75] , [75,100]把它们连续的两两合并的话就能得到上一层的状态,好像[0,25]和[25,50]合并,就得到[0,50],也就是说从[0,50]变到[0,25] , [25,50],花费是多少呢,就是50所以说到这里,也差不多了,状态转移方程为 dp[i][j]=min{ dp[i][k]+dp[k][j]+(y-x)} (k是i和j之间的一个数)这样子的话,我们的目标状态就是dp[0][len],即原来的整一条的费 阅读全文
posted @ 2012-12-26 13:37 Titanium 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 数学题(概率基本知识+DP记忆化搜索实现)题意:概率题:丢n个骰子,和大于等于x的概率是多少,用反面来求,1-小于x的概率首先丢n个骰子,可以看做是依次丢的(独立重复试验),每次丢的点数记录下来,比如3个筛子123和132是不同的,所以就是一个排列(而不是组合),那么总的可能为6^n,要用long long 保存。然后再找出有多少个排序和和是小于x的。这个找特殊排列的过程用DP来构建才不能超时(我用的是记忆化搜索,当然递推也是可以的,仿照记忆化搜索来写的,个人更倾向于记忆化搜索,容易理解,而且应该很多没用的状态不会去到,但是递推会推出所有状态)记忆化搜索,开一个二维数组dp[i][j],表示现 阅读全文
posted @ 2012-12-25 21:02 Titanium 阅读(350) 评论(0) 推荐(0) 编辑
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 32 下一页