自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

.

  • 博客(81)
  • 问答 (1)
  • 收藏
  • 关注

原创 poj1067 威佐夫博弈模板 取石子游戏

1185 威佐夫游戏 V2基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注有2堆石子。A B两个人轮流拿,A先拿。每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出2堆石子的数量,问最后谁能赢得比赛。例

2017-07-31 21:53:02 16181

原创 hdu5692(dfs序+线段树 )Snacks

SnacksTime Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 3022    Accepted Submission(s): 703Problem Description百度科技园内有n个零食机,零食机之间通

2017-07-31 21:12:55 15579

原创 UVa 514(栈)铁轨

#includeusing namespace std;int s[100000],top;int main(){ int n,t; while(scanf("%d",&n)&&n) { while(1) { int f=0; int k=1,top=1; sca

2017-07-31 16:51:53 15500

原创 1072 威佐夫游戏(威佐夫博弈模板)

/*Wythoff Game:黄金分割先取完者赢威佐夫博弈:每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取一个局面,让你求是先手输赢:差值 * 1.618 == 最小值的话后手赢,否则先手赢一个局面,让你求先手输赢,假设先手赢的话输出他第一次的取法:首先讨论在两边同时取的情况,很明显两边同时取的话,不论怎样取他的差值是不会变的,那么我们可以根据差值计算出其中的小的值,然

2017-07-31 16:45:18 15869

原创 UVa12096(集合中的集合+stl)集合栈计算机

//一个集合代表一个数字,神奇的操作#include#include#include#include#include#include#includeusing namespace std;string str;stack s;typedef set Set;map mp;vector setcache;int ID(Set x){ //查找集合x的编号,如果没

2017-07-31 10:57:45 15124

原创 UVa540(队列数组)团体队列

//队列数组#include#include#include#includeusing namespace std;char cmd[15];int main(){ int t,kase=0,x; while(scanf("%d",&t)&&t) { map hash; queue q,qp[1005]; printf("Scenario #%d\n",++kas

2017-07-30 20:47:37 15492

原创 丑数(递推||优先队列)

#include#include#include#define ll long longusing namespace std;priority_queue,greater > Q;set st;int d[]={2,3,5};int main(){ int k=0; Q.push(1); while(1) { k++; ll x=Q.top(); Q.pop(

2017-07-30 17:05:15 15960

原创 uva156(标准化+map)反片语

输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词。 在判断是否满足条件时,字母不分大小写,但在输出时应保留输入中的大小写,按字典序进行排列(所有大写字母在所有小写字母的前面)。#include#include#include#include#includeusing namespace std;string s;vector wo

2017-07-30 16:48:26 17049

原创 Uva 10815(string,set,vector,unique)安迪的第一个字典

输入一个文本,找出所有不同的单词(连续的字母序列),按字典序从小到大输出。 单词不区分大小写。#include#include#include#includeusing namespace std;string s,buf;set st;int main(){ while(cin>>s) { for(int i=0; i<s.length();

2017-07-30 15:37:27 17883

原创 Uva 101(vector的使用)木块问题

//vctor的使用,用函数封装一个操作还是蛮舒服的#include#include#include#includeusing namespace std;vector a[30];char s[10];int n,u,v;void find(int num,int& x,int& h){ //找到num的位置 for(int i=0; i<n; ++i)

2017-07-30 15:04:50 18812

原创 Uva 10474(lower_bound()的使用) 大理石在哪

现有N个大理石,每个大理石上写了一个非负整数。 首先把各数从小到大排序,然后回答Q个问题。 每个问题问是否有一个大理石写着某个整数x,如果是,还要回答哪个大理石上写着x。 排序后的大理石从左到右编号为1~N。 (在样例中,为了节约篇幅,所有大理石上的数合并到一行,所有问题也合并到一行。 ) //lower_bound()的使用#include#include#incl

2017-07-30 10:51:32 18254

原创 poj3481(map的使用)Double Queue

//题意:维护一个集合,操作有1:加入一个元素,2:删除最大元素,3:删除最小元素。//map默认按key从小到大排序#include#include#includeusing namespace std;map mp;map::iterator it;int main(){ int a,b,x; while(~scanf("%d",&x)&&x) {

2017-07-30 10:15:57 18311

原创 poj1190(dfs+剪枝)生日蛋糕

生日蛋糕Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 20113 Accepted: 7158Description7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。 设从下往上数第i(1 Ri+

2017-07-29 21:21:25 19955

原创 poj1729(bfs+优先队列优化)

Jack and JillTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 1502 Accepted: 390 Special JudgeDescriptionEver since the incident on the hill, Jack an

2017-07-29 21:20:17 21065

原创 poj1164(dfs)城堡问题

//建图的方式好像没有别人好,我把墙也算到图里面去了#include#include#includeusing namespace std;int a[102][102],n,m,ans;int dir[4][2]= {2,0,0,2,-2,0,0,-2};int t[4][2]= {1,0,0,1,-1,0,0,-1};void dfs(int x1,int y1){

2017-07-28 21:43:21 19846

原创 1812: 三角形和矩形(面积交)

1812: 三角形和矩形Submit Page    Summary    Time Limit: 5 Sec     Memory Limit: 128 Mb     Submitted: 604     Solved: 281     SpecialJudgeDescriptionBobo 有一个三角形和一个矩形,他想求他们交的面积。具体地,三角

2017-07-28 20:09:25 23036

原创 1106: 最优对称路径(最短路+记忆化搜索)

1106: 最优对称路径Submit Page    Summary    Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: 486     Solved: 135    Description给一个n行n列的网格,每个格子里有一个1到9的数字。你需要从左上角走到右下角,其中每一步只能往上

2017-07-28 15:16:59 21896

原创 csu1115(字典树)最短的名字

1115: 最短的名字Submit Page    Summary    Time Limit: 5 Sec     Memory Limit: 64 Mb     Submitted: 1683     Solved: 640    Description在一个奇怪的村子中,很多人的名字都很长,比如aaaaa, bbb and abababab。名

2017-07-27 21:33:30 21759

原创 zoj1655(最短路)

//求n到其他点的损率的乘积最大 #include#include#include#includeusing namespace std;const int mn=105,mm=40005;struct Edge{ int to,next; double w;}edges[mm];int n,m,head[mn],tot,inq[mn];double dis[mn],w[m

2017-07-27 15:29:08 22381

原创 POJ1135(最短路)

//poj g++神奇地wa #include#include#include#include#includeusing namespace std;const int mn=505,mm=500010;struct Edge{ int to,w,next;}edges[mm];int n,m,head[mn],x[mn],y[mn],w[mn],tot;void add(

2017-07-27 08:51:01 22418

原创 poj1511(n个点到1的最短路径)Invitation Cards

/*题目大意:求出点1到所有点的最短路之和 + 所有点到点1的最短路之和这个解题思路非常巧妙,要求所有点到1的最短路径,则把所有边反向,然后求1的单源点最短路即可 *///ps:poj不按套路出牌啊,dis居然那么大,搞的和超出了int #include#include#include using namespace std;const int mn=1000005,mm=100

2017-07-26 19:43:40 23009

原创 poj1192(记忆化搜索)最优连通子集

最优连通子集Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 2970 Accepted: 1596Description众所周知,我们可以通过直角坐标系把平面上的任何一个点P用一个有序数对(x, y)来唯一表示,如果x, y都是整数,我们就把点P称为整点,

2017-07-26 15:47:48 22083

原创 zoj2750(最短路径)

题目大意:成语接龙,从第一个到最后一个点的最短路径//选择建图的方式真的很重要,偷个懒,用dfs#include#include#includeusing namespace std;struct Edge{ int to,w,next;} edges[1000000];const int mn=1001;int n,m,w[mn];char s[100],a[mn

2017-07-25 17:27:04 18985

原创 1803: 2016(容斥原理实现)

1803: 2016Submit Page    Summary    Time Limit: 5 Sec     Memory Limit: 128 Mb     Submitted: 1406     Solved: 807    Description 给出正整数 n 和 m,统计满足以下条件的正整数对 (a,b) 的数量:

2017-07-25 15:25:15 19435

原创 最短路径?青蛙(Frogger), ZOJ1942, POJ2253

感觉只是用了最短路径的思想啊。//本题求的是从起点到终点的所有通路中的最大的边的最小值(起点是第一个,终点是第二个坐标),感觉和最短路没有太大的关系,就是过程有点类似 //请尽量选择c++编译器,g++神奇的wa #include#include#include#include#include#include using namespace std;const int mn

2017-07-24 20:44:02 20484

原创 hdu2841(容斥原理+分解质因数)Visible Trees

/*题目大意:在一个n*m的方格中一个人站在(0,0),每个方格都有树,求他能看到多少颗树设某点的坐标为(x,y),则求的是x/y的不同数目,那么问题就转换成了求两个区间内的互质的对数如果可以约分,那么他们约分后的互质在前面已经计算过了 */ //求区间[a,b]与[a,b]互质数多少对 #include#include#include#define ll long longu

2017-07-24 11:15:19 19806

原创 poj1091(容斥原理+质因子分解)跳蚤

跳蚤Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 10520 Accepted: 3247DescriptionZ城市居住着很多只跳蚤。在Z城市周六生活频道有一个娱乐节目。一只跳蚤将被请上一个高空钢丝的正中央。钢丝很长,可以看作是无限长。节目主持人会给该

2017-07-24 09:55:05 18881

原创 hdu4407(容斥原理+分解质因数)Sum

题目大意是第一行输入T,第二行输入n,m,一个数组a[i]=i,下面m行每行一个操作,输入1,x,p,则表示把a[i]修改为p,输入2,x,y,p,则表示询问[x,y]区间内和p互质的数的个数//比起原来的那个求一个数在一个区间里与之互质的个数,用map映射后,每次的求解最多多1000次判断互质计算//求和的时候两数相乘大于了int的范围,这个地方需要注意 #include#includ

2017-07-23 20:53:53 19270

原创 ZOJ1203(最小生成树kruskal算法)Swordfish

题目来源:Zhejiang University Local Contest 2002, Preliminary, ZOJ1203题目描述:给定平面上 N 个城市的位置,计算连接这N 个城市所需线路长度总和的最小值。输入描述:输入文件中包含多个测试数据。每个测试数据的第 1 行为一个正整数N, 0≤N≤100,代表你需要连接的城市数目;接下来有 N 行,每行为两个实

2017-07-23 16:16:40 19019

原创 hdu4135(容斥原理)Co-prime

题目大意是:输入A,B,N,求[A,B]区间内与N互质的数的个数 #include#include#includeusing namespace std;long long a,b;int k;vector x;void getprime(int n){ x.clear(); for(int i=2; i*i<=n; ++i) if(n%i==0

2017-07-23 10:58:40 19460

原创 Eddy's爱好(容斥原理)

Eddy's爱好Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2579    Accepted Submission(s): 1194Problem DescriptionIgnatius 喜欢收集蝴蝶标本

2017-07-23 09:02:52 19242

原创 最大子矩阵(悬挂线)

//如果一个矩形最大,那么该矩形其中的一列必定可以向左向右扫描最大,时空复杂度O(n*m)#include#includeusing namespace std;const int mx=1002;int a[mx][mx],l[mx][mx],up[mx][mx],r[mx][mx],n,m;int main(){ int T; scanf("%d",&T);

2017-07-22 20:47:00 18706

原创 hdu1695(容斥原理)

求(1,b)区间和(1,d)区间里面gcd(x, y) = k的数的对数(1b和d分别除以k之后的区间里面,只需要求gcd(x, y) = 1就可以了,这样子求出的数的对数不变。这道题目还要求1-3 和 3-1 这种情况算成一种,因此只需要限制x只需要枚举x,然后确定另一个区间里面有多少个y就可以了。因此问题转化成为区间(1, d)里面与x互素的数的个数

2017-07-22 10:10:24 18508

原创 hdu1796(容斥原理模板,三种方法实现)How many integers can you find

题目大意:给定n和一个大小为m的集合,集合元素为非负整数。为1...n-1中能被集合里任意一个数整除的数字个数。n/*如果是枚举所有的1...n,则n必须要小,不然一定会超时实现容斥的方法有:dfs,队列数组,二进制*///二进制实现容斥//对自己无语了,连最小公倍数对算错,lcm(a,b)=a/gcd*b; #include#include#includeusing name

2017-07-21 18:34:11 18736

原创 uva11806(容斥原理)拉拉队

例题3 拉拉队(Cheerleaders, UVa 11806)在一个m行n列的矩形网格里放k个相同的石子, 问有多少种方法? 每个格子最多放一个石子, 所有石子都要用完, 并且第一行、 最后一行、第一列、 最后一列都得有石子。【输入格式】输入第一行为数据组数T(T≤50) , 每组数据包含3个整数m,n,k(2≤m,n≤20, k≤500) 。【输出格式】

2017-07-20 16:31:50 17795

原创 CodeForces - 731C Socks (并查集+贪心)

C. Sockstime limit per test 2 secondsmemory limit per test 256 megabytesinput standard inputoutput standard outputArseniy is already grown-up and independent. H

2017-07-20 14:53:09 18363 1

原创 poj3249(记忆化搜索)Test for Job

Test for JobTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 11182 Accepted: 2641DescriptionMr.Dog was fired by his company. In order to support his fami

2017-07-20 09:29:25 18202

原创 UVa 11401 数三角形(组合数学)

数三角形(Triangle Counting, UVa 11401)有多少种方法可以从1, 2, 3,…, n中选出3个不同的整数, 使得以它们为三边长可以组成三角形? 比如n=5时有3种方法, 即(2,3,4) , (2,3, 5) , (3,4, 5) 。n=8时有22种方法。【输入格式】输入包含多组测试数据, 每组数据的第一行为整数n(3≤n≤

2017-07-19 14:37:15 19757

原创 hdu1691(静态字典树|对字符串进行排序)Phone List

题意:给出n个数,看其中是否有一个数是另一个数的前缀,例如123就是12345的前缀,有这种情况时输出NO,反之输出YES//静态字典树 #include#include#include#includeusing namespace std;const int mn=10001;int str[mn*11][11],tot;//静态的就是好用,全都初始化为0了bool en[m

2017-07-18 20:20:00 20797

原创 hdu2846(动态字典树||静态字典树 模板)Repository

RepositoryTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 5464    Accepted Submission(s): 1832Problem DescriptionWhen you go sho

2017-07-18 16:51:54 20275

空空如也

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

TA关注的人

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