自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 POJ 1328 -Radar Installation

题目链接题目解析题意海岸线的上方是sea,下方是land,sea上有小岛,小岛的坐标位置已知,在海岸线上设雷达,雷达的覆盖距离已知,输出能覆盖所有小岛的雷达数量的最少值。不满足条件则输出-1。思路以小岛为圆心(x,y),以雷达覆盖距离为半径画圆,与海岸线的交点为能覆盖此小岛的雷达的坐标范围。 (最左边坐标)lz=x-sqrt(d* d-y* y); (最右边坐标)rz=x+sqrt(d* d-y

2016-07-31 17:15:43 519

原创 POJ 2109 -Power of Cryptography

题目链接题目分析题意输入n和p,k^n=p,求k的值。思路pow(x,y)是求x的y次方的值。 因为k^n=p,所以k=p^(1/n)。 但若n为int,则得不到正确的结果。代码#include<stdio.h>#include<math.h>//pow()的头文件 int main(){ //freopen("TXA.txt","r",stdin); double p,n;

2016-07-31 16:00:16 689

原创 POJ 1017 -Packets

题目链接题目分析题意一个工厂生产相同高度h的货物(实心的),尺寸分别为1* 1,2* 2,3* 3,4* 4,5* 5,6* 6。 将这些货物用高度h、尺寸为6*6的包裹装,考虑费用问题,求最少所需的包裹数量。思路1个尺寸为6* 6的包裹可以装: 1个6* 6的货物 1个5* 5的货物和11个1* 1的货物 1个4* 4的货物和5个2* 2的货物 4个3* 3的货物。 1* 1,2* 2

2016-07-31 15:27:55 364

原创 POJ 2231 -Moo Volume

题目链接题目解析题意给定N个整数,求每个数与其他N-1个数的距离之和。思路先将整数按从小到大顺序排序,然后求每相邻两个数的差值,每个差值有i*(N-i)个,最终结果要乘2。注意范围,结果用long long。 代码#include<stdio.h>#include<algorithm>//sort()的头文件 using namespace std;#define LL long long

2016-07-31 14:45:13 443

原创 HDU 1429-胜利大逃亡(续)

题目链接题目解析思路状态压缩 借鉴状态压缩的思想用一个10位的二进制数表示此刻对10把钥匙的拥有情况。分析参照博客代码#include<stdio.h>#include<string.h>#include<queue>using namespace std;struct Node{ int x,y,step,key; Node(){} Node(int a,int b

2016-07-27 09:35:33 485

原创 分道扬镳

题目链接题目分析思路深度优先探索或是广度优先探索分析两人速度相同,我假定是一个人在走,用深度优先探索,先走到哪个门,对应那个人最先到达终点。 广度优先探索同理。代码一、#include#includeusing namespace std;char a[25][25];int flag[25][25];int dd[4][2]={{1,0},{0,1},

2016-07-26 21:45:38 917

原创 一路飞奔

题目链接题目解析思路广度优先探索 每个坐标有3个选择(+1、-1、×2),将它们存入队列分析WA的原因 数组开小了代码一、#include<stdio.h>#include<queue>#include<string.h>using namespace std;#define MAX 100005int d[MAX];//开小了之后会wa void bfs(){ int k=

2016-07-26 14:12:12 523

原创 打怪兽

题目链接题目解析思路深度优先探索分析isdigit()函数包含在ctype.h头文件中, 原型: int isdigit(char c);      功能:判断字符c是否为数字    说明:当c为数字0-9时,返回非零值,否则返回零。代码一、#include<stdio.h>#include<string.h>#include<ctype.h>//函数isdigit(char c)的头文件

2016-07-26 13:40:22 525

原创 迷宫最短路径的步数

题目链接题目解析思路广度优先探索分析pair<类型,类型> pair是一种模板类型,可以存储2个值,2种值类型无限制。有2个属性值,first和second。 队列中 队头(Front):取出数据元素的一端 队尾(Rear):插入数据元素的一端 单项队列代码#include<stdio.h>#include<string.h>#include<queue>using namespac

2016-07-26 01:31:05 1401

原创 判断迷宫出路

题目链接题目分析思路深度优先探索分析将WA变为AC 1、因为输入中有字符,在每输入一行要回车的地方(会产生回车符)添加getchar(),吃掉回车符。 2、将return df(d1,d2); 改为if(df(d1,d2)) return true; 代码#include<stdio.h>#include<string.h>using namespace std;char a[25]

2016-07-25 21:19:05 775

原创 UVA 11076-Add Again

题目链接题目解析题意输入整数N(1≤N≤12),求N个数字(0~9)构成的不重复的全排列的和。输入N为0时,程序结束。思路平均数思想 所求结果s=每一位的平均数×排列数×N个1 Example: <1 1 2> 代码#include<stdio.h>#include<iostream>#include<string.h>using namespace std;#define ULL

2016-07-23 13:03:02 393

原创 UVA 11461-Square Numbers

题目链接题目解析题意输入两个整数a和b,输出从a到b(包含a和b)的平方数的个数。直到输入0 0时程序结束。思路如果一个数n是平方数,(double)sqrt(n)-(int)sqrt(n)<1e-6。代码#include<stdio.h>#include<math.h>bool f(int x){ double m=sqrt(x); int n=(int)m;

2016-07-23 10:25:24 987

原创 UVA 11426-GCD - Extreme (II)

题目链接题目解析题意输入正整数n,求满足的数对(i,j)所对应的gcd(i,j)之和。输入0时程序结束。思路 所有gcd(x,n)的值都是n的约数,用g(n,i)表示满足gcd(x,n)=i且x<n的正整数x的个数,则f(n)=sum{i×g(n,i)|i是n的约数}。gcd(x,n)=i的充要条件是gcd(x/i,n/i)=1。满足条件的x/i有phi(n/i)个,说明g(n,i)=phi(n/

2016-07-22 01:25:44 360

原创 UVA 11401-Triangle Counting

题目链接题目解析题意输入整数n,在1,2,…,n中任选3个不同的整数作为三角形的边长,求能组成多少个三角形。直到输入0时程序结束。思路用加法原理,设最大边长为x的三角形有c(x)个,另外2条边长分别为y和z,根据三角形不等式有y+z>x,得出z的范围为x>z>x-y。y从1取到x-1,对应的z的解的个数成等差数列,y=x-1时z有x-2个解。根据等差数列的求和公式,共有0+1+2+…+(x-3)+(

2016-07-21 22:16:57 417

原创 UVA 11538-Chess Queen

题目链接题目解析题意求在n*m棋盘上放2个相互攻击的皇后的方案数,即求2个皇后在同一行、同一列或同一对角线的所有情况。每行输入2个整数n,m,直到n=m=0时程序结束。思路同一行放2个皇后的方案数为A(n,m),同一列放2个皇后的方案数为B(n,m),同一对角线放2个皇后的方案数为D(n,m),运用加法原理,答案为A(n,m)+B(n,m)+D(n,m)。 A(n,m)、B(n,m)、D(n,m)

2016-07-21 17:19:37 588

原创 UVA 11806-Cheerleaders

题目链接题目解析题意在m*n的矩形网格中放k个相同的石子,每个格子最多放一个石子,所有石子都必须用完,保证第一行,第一列,最后一行,最后一列都要有石子,求有多少种方法。 输入数据的组数T,每组数据包含行数M,列数N,石子数K。 输出满足题意的方法种数。思路运用容斥原理。全集为S,第一行没有石子的方案集为A,最后一行没有石子的方案集为B,第一列没有石子的方案集为C,最后一列没有石子的方案集为D。所

2016-07-21 16:48:49 354

原创 UVA 1500-Alice and Bob

题目链接题目解析题意输入数据的组数T,输入每组数据的个数N,输入N个整数。两个人轮流操作N个整数,每次操作可以选择将一个数减一,或是合并两个数,不能操作者算作输。Alice先操作。思路推理参考 dp参考 推理的结论为: 记c为石子数为1堆数,s为其他堆合并再取完的总步数。当s大于2时,c为奇数(c&1)或s为奇数(s&1)则先手必胜;当s小于2时(即s==0||s==2),c不为3的倍数(c%

2016-07-21 13:00:31 464

原创 UVA 11489- Integer Game

题目链接题目解析题意输入数据的组数t,每组数据包含一连串的数字,S先取T后取,使取后的数字之和为3的倍数(0也3的倍数),直到不能取算作输,输出赢的字符。思路所有数字的和sum,对3取余的结果,等于每个数字对3取余的和再对3取余的结果。一:启发于博客 每个数字对3取余结果为0,1,2的数量分别设为num,num1,num2。 总共有两种情况: 1、起初sum是3的倍数,要保证取后数字和为3的倍

2016-07-20 11:10:42 659

原创 UVA 10892 - LCM Cardinality

题目链接题目解析题意输入整数n,输出n和最小公倍数(lcm)为n的所有组合数目。输入的n为0时,程序结束。思路组合中的两个数都是n的因数,暴力枚举n的因数,符合a*b==lcm(a,b)*gcd(a,b)条件的组合数的和即为所求。 简单说vector是一个存放任意类型的动态数组 vector<数据类型> a 和 数据类型 a[]的区别 系统在处理不定长时,向量比数组要快代码#include<s

2016-07-20 06:08:02 596

原创 UVA 10780-Again Prime? No Time.

题目链接题目解析题意输入数据组数t,每组数据包含2个整数m和n,若m^k能被n!整除,输出最大的K,否则输出”Impossible to divide”。思路将m分解质因数,求出每个质因数的个数p[i],在n!中相对应m中质因数的个数为q[i],q[i]÷p[i]的最小值即为所求的K的值。 如何求m和n!的质因数见代码

2016-07-19 23:26:01 361

原创 UVA 10943 - How do you add?

题目链接题目解析题意输入整数N和K,将N分成K个不超过N的非负整数的和的形式,求解有多少种组合方式,当输入的两个数N和K都为0时,程序结束。思路法一(隔板法):启发于博客 题目等价于将N个相同的小球,放入K个不同的盒子中,盒子可以为空,求解有多少种放法。转化为将N+K个相同的小球,放入K个不同的盒子中,每个盒子至少有一个小球;在N+K-1个空当里插入K-1个隔板,共有C(N+K-1,K-1)种插法

2016-07-18 01:46:22 391 1

原创 UVA 11889 - Benefit

题目链接题目简析题意LCM(A,B)=C即A和B的最小公倍数是C,根据输入的A和C,若存在B则输出B的最小值,否则输出“NO SOLUTION”。思路最大公约数(gcd) (1)int gcd(int a,int b){return a%b==0?b:gcd(b,a%b);}(2)int gcd(int a,int b){return b==0?a:gcd(b,a%b);}最大公约数(gc

2016-07-18 00:52:45 361

空空如也

空空如也

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

TA关注的人

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