自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(115)
  • 收藏
  • 关注

转载 Python 之 使用 PIL 库做图像处理

我用的python 3.5 加载PIL的时候出错后来在 Anaconda Prompt中 conda install pillow 用pillow替代PIL以下内容转自:http://www.cnblogs.com/way_testlife/archive/2011/04/17/2019013.html1. 简介。    图像处理是一门应用非常广的技术,而拥有非常丰富第

2017-03-02 14:32:36 985

原创 NK1137 石子合并

在一个圆形操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。编程任务:对于给定n堆石子,编程计算合并成一堆的最小得分和最大得分。Input输入包括多组测试数据,每组测试数据包括两行。第1 行是正整数n,1

2012-11-08 21:57:47 1588 1

转载 滚动数组

昨晚做了一道题,开了一个int [5000][5000]的数组,OLE了,虽然可以用short [5000][5000]猥琐过,但毕竟只是特殊情况 正确的方法是滚动数组压缩存储,整理了一下网上的资料: 利用滚动数组的话在N很大的情况下可以达到压缩存储的作用。不过经常还是用在DP题目中,因为DP题目是一个自下而上的扩展过程,我们常常用到是连续的解,前面的解往往舍弃!所

2012-11-03 13:18:23 745

原创 最长公共子序列 HDU 1159/1080/1503

hdu 1159 题意:求两个串的最长公共子序列#include#include#include#define size 1000using namespace std;char str1[size],str2[size];int dp[size][size];int main(){ int len1,len2; while(scanf("%s",str1)

2012-10-30 21:00:37 808

原创 hdu1695 GCD (容斥原理+欧拉函数)

/*第一个区间:[1,2,...,b/k] 第二个区间:[b/k+1,b/k+2,...,d/k]读第一个区间我们只要利用欧拉函数雷家没个数的质因数的个数即可,第二个区间我们任取x,要求[1,2,...,b/k]中所有与x互质的数的个数,这里我们用到容斥原理:先将x质因数分解,求得[1,2,...,b/k] 里所有能被x的质因数整除的数的个数,然后用b/k减去即可。 */ #inc

2012-10-08 14:56:44 1942

原创 poj 3370 Halloween treats(反演定理+鸽巢原理)

题意: 已知有n户人,每户会给小孩们一定数量的糖果(会给的数量假设小孩都已知),求小孩挑选哪几户人家,所得糖果总数能够使每个小孩得到相同数量的糖果,即是小孩数目的倍数?思路:定理:         设a1、a2……am是正整数的序列,则至少存在整数k和l,(1  证明:x%m的余数有(m-1)中可能,即设有(m-1)个鸽巢,设sn代表(a1+a2+...+an)则m个sn产生m

2012-10-08 10:50:56 1741

原创 coj 1053 寂寞的素数 (费马小定理 + 矩阵求斐波那契)

DescriptionFibonacci 数列是大家的老朋友了 Fib[1]=1, Fib[2]=1, Fib[3]=2……Fib[n]= Fib[n-1]+ Fib[n-2] p是一个不甘寂寞的素数。某日它找到Fibonacci 数列,跳到Fibonacci 数列头上玩了起一个传说中的游戏。于是我们看到: Fib[a]^p+ Fib[a+1]^p+ Fib[a+2]^p………..

2012-09-20 10:53:31 2525

原创 hdu 1143

DescriptionIn how many ways can you tile a 3xn rectangle with 2x1 dominoes? Here is a sample tiling of a 3x12 rectangle. InputInput consists of several test cases followed by a line containing

2012-09-20 10:31:17 1379

原创 hdu 1005 矩阵相乘求解

矩阵乘法:我们将数列写成:Fibonacci[0] = 0,Fibonacci[1] = 1Fibonacci[n] = Fibonacci[n-1] + Fibonacci[n-2] (n >= 2)可以将它写成矩阵乘法形式:                            将右边连续的展开就得到:

2012-09-18 09:57:08 1128

原创 ccsu 1546 数字游戏

Description自从小黑上次在和大宝的游戏中取得了信心之后,这次他又想到了一个问题,他要去计算两个数A和B的最大公约数。 由于这两个数非常的大,于是大宝把数字A拆成了N个数,这N个数相乘的结果是A,把B拆成了M个数,同样这M个数的乘积等于B,小黑迫不及待地想去计算出这两个数的最大公约数,这次你能帮帮他吗?如果结果超过了9位数,输出最后的9位数。 Input第一行包含一个正

2012-09-17 20:39:12 842

转载 POJ 3318 两个大矩阵相乘是否与另一矩阵结果相等

关于八月POJ月赛的problem B(3381)的解题总结一、      题目要求给定三个矩阵:A、B和C,判断A*B是否等于C。二、      分析题目很直观,就是矩阵乘法,但是两个矩阵直接相乘需要O(n^3)的时间复杂度,假设A*B的结果存放在AB矩阵中,实例代码如下:for(int i=0;i       for(int j=0;j       {

2012-09-14 15:18:56 2514

原创 hdu 3576 Elevators in Jiayuan Students' Apartment(DP)

tup[ f ][ i ] [ j ] [ k ]表示 第f层第一个电梯i个人,第二个电梯j个人,第三个电梯k个人的情况下要停几次。#include#include#define INF 0x7fffffffusing namespace std;int hash[20];int tup[20][20][20][20];int v , n;int dp(){ tup[

2012-09-14 09:40:33 925

原创 coj 1036 Number (数学)

Description数学知识在ACM竞赛中是很重要的,下面就是一道数学题。 给定2个正整数A、B,求不能被x*A+y*B表示的最大整数(x,y必须为非负整数)。 Input第一行一个整数M,代表测试样例总数。 每组样例输入两个数A,B 12Output对每组输入,输出一行。 如果这个最大的整数不存在,输出 -1 Sample Input

2012-09-13 21:29:47 694

原创 hdu 3032 Nim or not Nim? (SG打表找规律)

题意:有n堆石子,alice先取,每次可以选择拿走一堆石子中的1~x(该堆石子总数) ,也可以选择将这堆石子分成任意的两堆。alice与bob轮流取,取走最后一个石子的人胜利。思路:因为数的范围比较大,所以最好通过SG打表的结果找出规律在解。sg(4k)=4k-1;sg(4k+1)=4k+1;sg(4k+2)=4k+2;sg(4k+3)=4k+4;SG打表代码:

2012-09-13 19:28:54 1302

转载 婓波那契博弈 hdu 2516

引用:http://blog.csdn.net/dgq8211/article/details/7602807有一堆个数为n的石子,游戏双方轮流取石子,满足:1)先手不能在第一次把所有的石子取完;2)之后每次可以取的石子数介于1到对手刚取的石子数的2倍之间(包含1和对手刚取的石子数的2倍)。约定取走最后一个石子的人为赢家,求必败态。这个和之前的Wythoff

2012-09-13 13:56:32 958

原创 hdu 1525 || poj 2348 Euclid's Game(博弈找规律)

题意:给你a , b两个数,总是用大的数减去小的数的x倍,若能使其中一个数减完后为0,则该玩家获胜。思路:首先(设a>b), 若 a / b = 1 那么若 a%b==0,则第一个玩家获胜,但如果a % b !=0 ,那么局面变为: b ,  a%b(此时不能简单判断胜负。)若a / b >=2 那么 第一个玩家总是能选择对自己有利的局势:(1)若 a % b==0 则 a - (a/

2012-09-13 09:48:48 1577

转载 博弈类题目小结(hdu poj zoj)

转载请注明出处,谢谢http://blog.csdn.net/acm_cxlove/article/details/7854526       by---cxlove首先当然要献上一些非常好的学习资料:基础博弈的小结:http://blog.csdn.net/acm_cxlove/article/details/7854530经典翻硬币游戏小结:http:/

2012-09-09 11:11:23 1714

原创 hdu 1079 Calendar Game(博弈SG函数 || 奇偶找规律)

题意:从当前日期,在他/她转的玩家可以移动到下一个历日或下月的同一天。当在之后的一个月中没有在同一天,播放器只能移动到下一个的日历日期。例如,从1924年12月19日,你可以移动到1924年12月20日,下一个日期,或一月19日,1925年,在同一天在下个月。然而,2001年1月31日,你可以只移动2001年2月1日,因为2001年2月31日是无效的。一个球员赢得比赛时,他/她到底到达的日期2

2012-09-05 21:56:45 3356

原创 hdu 1517 A Multiplication Game(博弈找规律)

1  2-----9 、  (9+1) ------- (2*9)、(2*9+1) ------- (2*9*9) 、(2*9*9+1) ------ (2*9*9*2)、(2*9*9*2+1) ------(2*9*9*2*9) ......     N                          P                                  N

2012-09-05 16:35:59 1414

原创 hdu 1536、hdu 1944 S-Nim(博弈SG函数)

题意:多组测试数据 ,输入 k个集合S的元素,m种情况,m种(L堆,每堆hi个)。            若存在移动某堆能到达一个必败点,则该点为必胜点,输出W            必败点指无论怎么移动都只能到达必胜点,输出L。思路:SG函数            每堆看做一个子游戏,SG函数通过递归得到每种堆数的g();SG函数定义:对于一个递增有界的图G(X, F

2012-09-04 18:19:56 4203

转载 博弈论

转_博弈论(比较全)博弈论(一):Nim游戏重点结论:对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示位异或(xor)运算。Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合适不过了。Nim游戏是组合游戏(Combinat

2012-09-04 17:49:48 5395 1

原创 hdu 1850 Being a Good Boy in Spring Festival(尼姆博弈加强)

题意:  最后取完的选手胜利,与1907刚好相反。并输出若胜利,则第一步有多少种取的方式。综上所述,若是    S2,S1,T0 。 则先下的人必输。                     若是   T2,S0 。则先下的人必胜。#include#includeusing namespace std;int main(){ int n , a[110] ,

2012-09-04 01:05:30 955

原创 hdu 2147 kiki's game(基础博弈)

定义:必胜点(N点):下一个选手将取胜的点(将物品取完)。必败点(P点):前一个选手取胜的点(此时物品已经取完,或后面某次轮到当前选手时物品已经取完)。属性:1 、必胜点N点,一定有某种方法到达必败点P点。2、必败点P点,无论通过什么方法都只能到达必胜点N点。我们可以确定最后一个必败的情况(即物品数目为0,此题是指点(n,1)的位置,三个方向都找不到空位),然后反着

2012-09-04 00:08:46 1079

原创 hdu 1907 John(取火柴游戏)

尼姆博奕(Nimm Game): 有三堆各有若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。      用(a , b , c)表示某种局势,首先(0, 0 , 0)显然是奇异局势(即后取得人一定取光物品),第二种奇异局势是(0 , n , n),只要与对手拿走同样多的物品,最后都将导致(0 , 0 , 0)。第三种(1 , 2 , 3)也是奇异

2012-09-03 16:59:08 1854

原创 hdu 1527 升级 2177(威佐夫博奕)

理论:(来自:http://www.wutianqi.com/?p=1081)威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。    这种情况下是颇为复杂的。我们用(ak,bk)(ak ≤ bk ,k=0,1,2,…,n)表示两堆物品的数

2012-09-03 11:25:24 2574

原创 poj 1144 Network (无向图求割点)

#include#include#includeusing namespace std;vector vec[110];int dfn[110] , low[110],in[110];int n, step , sum ;void init(){ for(int i=0;i<110;i++) { dfn[i]=low[i]=in[i]=0; v

2012-08-31 15:13:55 1156

原创 poj 2117 Electricity (无向图割点去除后最大连通分支数)

题意:求去除一点后,形成的连通分支数的最大值。(使最多的网络不能跟原路线相连)顶点u是割项当且仅满足 (1) 或 (2)时:(1) 若u是树根,且u的孩子数 son>1 。因为没有u的后向边,以这些孩子为根的子树之间互不相连通,所以去掉u后将得到son个分支。(2)若u不是树根,且存在树边 ( u  ,  v ) 使low ( v ) >= dfn ( u )。low值说明

2012-08-29 11:44:39 3156

原创 poj 1523 SPF (无向图 求割项)

题意: 求有多少个割项,且每个割项被几个块所共有。代码:#include#include#include#define mm 1010using namespace std;vector vec[mm];int stack[mm] , low[mm] , dfn[mm] ,gd[mm];int top , step ,n , m ,xx;void init(){

2012-08-27 18:11:11 931

原创 hdu 3394 (无向图求块 判断环)

题意描述: 公园有n个景点,公园的管理员计划要建m条道路,并且安排一些形成回路的参观路径,如果一条道路可以被多条回路共用, 那么这条边是冲突边,如果一个块中有多个环,则该块中的每条边都是冲突边。 如果不能形成环的路则为不需要的边,现在就是求无向图中冲突边和不需要边的条数解题思路: 把图分为多个块,然后判断每个块里面的边数,如果块的边数

2012-08-27 15:56:11 1615

原创 poj 2186 Popular Cows (tarjan + 缩点)

题意 :n头奶牛,m组关系(a b代表a认为b受欢迎)。求最后有多少头奶牛所有奶牛都认为它受欢迎。思路:首先用tarjan算出连通分支数,将所有点都标上所属连通分支color。将每个分支看做一个点,若某点a受到另一点b联系,则说明该点a代表的连通分支中每个原始点都受到b中以及所有认为b受欢迎的点的欢迎,所以此处用dfs计算出每个分支中被多少人欢迎。代码(比较繁琐):#inc

2012-08-25 16:29:46 537

原创 hdu 2767 Proving Equivalences (tarjan + 缩点)

/*题目大意:给定一张有向图,问最少添加几条边使得有向图成为一个强连通图。解题思路:缩点后找入度为0的点和出度为0的点,统计个数,选择大的那个数就是答案。 如果出度为0的个数n比入度为0的个数m多,那添加n条边,从当前出度为0的点到 其他入度为0的点,肯定能成为强连通图,同理可得m大也可以。(各连通分支间 可能需要1条或2条,才能使两个连

2012-08-25 01:33:26 517

原创 hdu 1827 Summer Holiday (Tarjan算法)

#include#includeusing namespace std;int stack[1010],top ,size, step ,color;int in[1010],dfn[1010],low[1010];int rd[1010],price[1010],sum,num;struct E{ int v, next;}e[2010];int head[1010

2012-08-24 16:17:55 692

转载 Tarjan 算法

[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达。{5},{6}

2012-08-24 15:54:14 527

原创 coj 1509 Build the given towers

题意:给定一个左视图,要求给定的方块数能否垒成这么一个视图。方块数不要求全部用完。垒数不能超过W。 解答:此题我们采用贪心解决。由于W有限,如果没有黑色的‘b’,我们是可以只用一垒就摆出给定的视图。贪最少的垒,只有到出现奇数个连续的‘b’时,这是我们要将2*1*1的black块挡住一半,使得左视图只看到一个‘b’,这时才要新摆放一个垒。我们从后往前,从高往低摆放视图,至于需要用来作为垫

2012-08-24 09:52:39 580

原创 ccsu 1179 青蛙过河 递推

题目:有一条河,左边一个石墩(A区)上有编号为1,2,3,4,…,n的n只青蛙,河中有k个荷叶(C区),还有h个石墩(D区),右边有一个石墩(B区),如下图2—5所示。 n只青蛙要过河(从左岸石墩A到右岸石墩B),规则为: 1)石墩上可以承受任意多只青蛙,荷叶只能承受一只青蛙(不论大小); (2)青蛙可以:A→B(表示可以从A跳到B,下同),A→C,A→D,C→B,

2012-08-17 16:59:01 1905

原创 hdu 1827 Summer Holiday (强连通Kosaraju法)

题意: 输入n、m ,n表示人数和联系对数。联系不同人的花费不同,需要找到花费最少为多少。思路:找到强连通分支(标记同一分支中的点),然后每个分支中最多只需要联系一个人即可,但若两个分支中有联系则只需联系其中一个花费小的,即将每个分支看做一个点,找分支间的出、入度关系。#include#include#define size 1010#define INF 1000000000

2012-08-16 10:48:31 1545

原创 coj 1504 放置棋子(诸侯安置)dp

很久以前,有一个强大的帝国,它的国土成正方形状,如图2—2所示。 这个国家有若干诸侯。由于这些诸侯都曾立下赫赫战功,国王准备给他们每人一块封地(正方形中的一格)。但是,这些诸侯又非常好战,当两个诸侯位于同一行或同一列时,他们就会开战。如下图2—3为n=3时的国土,阴影部分表示诸侯所处的位置。前两幅图中的诸侯可以互相攻击,第三幅则不可以。 国王自然不愿意看到他的诸侯们

2012-08-16 10:20:54 2087

原创 hdu 1811Rank of Tetris (并查集+拓扑排序)

题意: n个队,m种描述(a>b 或 a=b 或 aa同时存在;②:存在环),信息是否不齐全(排名顺序有多种可能:某次入度为0的>1个。)思路: 由于当存在冲突和信息不全时,返回冲突。所以先用并查集将‘=’两边的点“并为一点”,即只用对其中一点进行排序,将他们的根节点赋值为相同。若后面‘>' 或 'a=b与aa同时存在;若该冲突则用拓扑排序将比分顺序排列出来(当排序过程中出现入度为0的个数某次

2012-08-13 15:54:26 907

原创 hdu 1285 确定比赛名次

题意:  拓扑排序,按字典序输出。  #include#include#include#includeusing namespace std;int n,m , top;int vis[510][510];int ans[510];struct E{ int v, next;}e[20010];struct N{ int head , dep ,

2012-08-13 10:52:13 655

原创 hdu 2647 Reward 拓扑排序

#include#include#include#define size 10010using namespace std;int n,m ,top ,ans;struct E{ int v,next;}e[size*2];struct EE{ int dep , rd , head;}node[size];void insert(int u , int v)

2012-08-10 18:03:46 550

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除