[推荐]wang_blog

发表于 其他 分类,标签:
欢迎来到wang_blog,你可以在这里愉快地留言!!...

RSA加密算法

wang 发表于 算法模板 分类,标签:
RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。RSA的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。人们已能分解多个十进制位的大素数。因此,模数n必须选大一些,因具体适用情况而定。python代码实现:# -*- coding: utf-8 -*-__author__ = "hql"'''python实现RSA加密算法:1,随意选择两个大的质数p和q,p不等于q,计算N=pq。2,根据欧拉函数,不大于N且与N互质的整数个数为(p-1)(q-1)3,选择一个整数e与(p-1)(q...

python使用metaclass实现ORM框架

wang 发表于 Pyhon 分类,标签:
# -*- coding: utf-8 -*-'''python使用metaclass实现ORM框架'''class Field(object):def __init__(self,name,column_type):self.name = nameself.column_type = column_typedef __str__(self):return '<%s,%s>' % (self.__class__.__name__, self.name)class Strin...

windows vs2005 编译动态链接库(dll)

wang 发表于 lua 分类,标签:
windowsvs2005编译动态链接库(dll),在lua中使用,但是在lua中一直require出错,请教高手才知道,需要加__declspec(dllexport)。在window下加入这个才会生成包含了哪些函数以及相关的信息(符号清单),可以使用dumpbin.exe/exportstools.dll查看符号清单。c++代码:// mytestlib.cpp : Defines the entry point for the console application.//vs2005需要设置附加头文件库和lib库#include "stdafx.h"#ifdef __cplusplusextern &...

佛祖保佑注释代码

wang 发表于 其他 分类,标签:
//              _ooOoo_//             o8888888o//             88"."88//          &nbs...

51nod-1031 骨牌覆盖

发表于 动态规划 分类,标签:
 在2*N的一个长方形方格中,用一个1*2的骨牌排满方格。问有多少种不同的排列方法。例如:2*3的方格,共有3种不同的排法。(由于方案的数量巨大,只输出Mod10^9+7的结果)Input输入N(N <= 1000)Output输出数量 Mod 10^9 + 7Input示例3Output示例3思路:斐波纳契数列。。。代码:#include<iostream>#include<algorithm>#include<math.h>#include<stdio.h>#include <string.h>#define LL long long#define MAX&nb...

51nod-1050 循环数组最大子段和

发表于 动态规划 分类,标签:
 N个整数组成的循环序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1],a[n],a[1],a[2]这样的序列)。当所给的整数均为负数时和为0。例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。Input第1行:整数序列的长度N(2 <= N <= 50000)第2 - N+1行:N个整数 (-10^9 <= S[i] <= 10^9)Output输出循环数组的最大子段和。Input示例6-211-413-5-2Output示例20思路:整个数组可以形成一个环,那么...

51nod-1072 威佐夫游戏

发表于 博弈 分类,标签:
 有2堆石子。AB两个人轮流拿,A先拿。每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取。拿到最后1颗石子的人获胜。假设AB都非常聪明,拿石子的过程中不会出现失误。给出2堆石子的数量,问最后谁能赢得比赛。例如:2堆石子分别为3颗和5颗。那么不论A怎样拿,B都有对应的方法拿到最后1颗。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)第2 - T + 1行:每行2个数分别是2堆石子的数量,中间用空格分隔。(1 <= N <= 2000000)Output共T行,如果A获胜输出A,如果B获胜输出B。Input示例33 53 41 9Ou...

51nod-1070 Bash游戏 V4

发表于 博弈 分类,标签:
 有一堆石子共有N个。AB两个人轮流拿,A先拿。每次拿的数量最少1个,最多不超过对手上一次拿的数量的2倍(A第1次拿时要求不能全拿走)。拿到最后1颗石子的人获胜。假设AB都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。例如N=3。A只能拿1颗或2颗,所以B可以拿到最后1颗石子。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000)第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)Output共T行,如果A获胜输出A,如果B获胜输出B。Input示例3234Output示例BBA思路:从题意可以看出,n个石子,若先拿的人拿走大于或等...

51nod-1068 Bash游戏 V3

发表于 博弈 分类,标签:
 有一堆石子共有N个。AB两个人轮流拿,A先拿。每次拿的数量只能是2的正整数次幂,比如(1,2,4,8,16....),拿到最后1颗石子的人获胜。假设AB都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。例如N=3。A只能拿1颗或2颗,所以B可以拿到最后1颗石子。(输入的N可能为大数)Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000)第2 - T + 1行:每行1个数N。(1 <= N <= 10^1000)Output共T行,如果A获胜输出A,如果B获胜输出B。Input示例3234Output示例ABA思路:打表后可以看出若n能被3整除,则B获...

51nod-1066 Bash游戏

发表于 博弈 分类,标签:
 有一堆石子共有N个。AB两个人轮流拿,A先拿。每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜。假设AB都非常聪明,拿石子的过程中不会出现失误。给出N和K,问最后谁能赢得比赛。例如N=3,K=2。无论A如何拿,B都可以拿到最后1颗石子。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)第2 - T + 1行:每行2个数N,K。中间用空格分隔。(1 <= N,K <= 10^9)Output共T行,如果A获胜输出A,如果B获胜输出B。Input示例43 24 27 38 3Output示例BAAB思路:经典的...