自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CodeForces 451B Sort the Array(排序,逆序)

B. Sort the Arraytime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputBeing a programmer, you like arrays a lot.

2014-07-28 15:01:58 661

原创 POJ 2478 Farey Sequence(欧拉函数)

/*对于每一个输入的n,结果输出为从2开始的欧拉函数值一直加到n的欧拉函数值,为了对于不同的n,这个累加的过程不再重复,我们将累加的结果存储在数组a之中*//*注意,由于是累加,因此累加后的结果很大,最终要求的答案也可能很大,超出int的范围,因此要用long long*/#include#includeusing namespace std;const int

2014-07-26 12:01:20 635

原创 POJ 3090 Visible Lattice Points(欧拉函数)

/*由图我们可以看出,只有横坐标和纵坐标互素的时候才可以看见该点,如果横纵坐标不互素,那么他们肯定可以约分,化为更简单的形式,约分后横纵坐标的数值都会变小,这两个变小的坐标必然在前面出现过。由此问题转化成了求欧拉函数值累加的问题。沿着k=1斜率线,将第一象限分成两份,我们要求的结果就是2倍的(2,3。。n)的欧拉函数值,再加上1的欧拉函数值,再加上2(其中一个是斜率为0,一

2014-07-26 11:27:10 423

原创 第一章例题10正整数序列UVa 11384(找规律)

/*没啥说的,就是找个规律,当输入n的时候,应该操作的次数为floor(log2(n))+1,但是没有log2这个函数,但是有log和log10函数,而且有log2(n)=log(n)/log(2)*/#include#include#includeusing namespace std;int n,ans;int main(){ while(cin

2014-07-25 19:51:33 479

原创 第一章例题3分金币UVa 11300(中位数)

/*这是一道涉及到中位数的题,一上去谁也看不出这是中位数啊!我们先分析一下这道题,由于要求最少的转手金币量,那我们就要假设这n个人都是足够聪明的,什么叫足够聪明呢?举个例子,1号给2号4个金币,2号又给1号3个金币,那你说这俩人不是有病吗,直接1号给2号1个金币不就ok了吗因此我们发现实际上两个人之间的金币给与不给只是单方向的,不会出现互相给。由于是在一个圆环上,我们可以假

2014-07-25 16:52:10 560

原创 第一章例题1勇者斗蛟龙UVa 11292(贪心)

/*就是贪心,将两个数组排序*/#include#include#includeusing namespace std;const int maxn=20000+10;int a[maxn],b[maxn];//a和b分别用来存储龙的头和骑士的实力值int n,m;int main(){ while(cin>>n>>m) {  if(n==0&&m=

2014-07-25 13:56:54 621

原创 第一章例题4墓地雕塑UVa1388(参照系的选取)

1388 - GraveyardTime limit: 3.000 seconds /*我个人认为这道题是涉及到参照系的选取和double数据的取整这道题我们要巧妙地选取n+m个雕塑时的情况为基本的坐标系,并选取原点0坐标,其余的为1,2,。。。n+m-1;原来n个点的时候,这n个点在n+m坐标系里的坐标应该是0,k,2k,3k,....(n-1)k,其中k=(n+m)

2014-07-25 13:18:54 854

原创 第一章例题7偶数矩阵UVa 11464(枚举)

/**//*这道题最暴力的方法就是对于n×n的方阵,对每个元素的“改”与“不改”进行枚举一遍,看看每种状况之下的矩阵是否是偶数矩阵。但是由于01方阵的最大边长为15,最差的情况下要枚举的次数为2^255=5*10^67,显然要超时,这样做是不行的。但是由于n最大为15,我们可以暴力枚举第一行,只有不超过2^15=32768种可能。接下来我们可以由第一行推出第二行,由第二行推出第

2014-07-25 10:16:38 580 1

原创 POJ 1258 Agri-Net(最小生成树prim算法)

/*没啥说的,就是对于一个有n个结点的有权无向图,给出一个n×n的数组表示相应的结点之间的距离最后求最小生成树的代价*/#include#include#include//因为用了memset函数#define MaxInt 200000//因为两个村庄间的最大距离不超过100000,再者宏定义不要加分号using namespace std;const int m

2014-07-24 23:10:21 413

原创 HDU 1213 How Many Tables(并查集)

#include #include using namespace std;int sum, n, m;/*sum是需要的桌子数*/int father[1005];/*用来存储自己所在的门派信息,哈哈*/int main(){ void makeset(int); int findset(int); void unionset(int,int); int

2014-07-24 16:37:21 377

原创 第一章例题17年龄排序学UVa11462(内存受限问题,计数排序)

/*由于输入文件大约有25M,而内存只有2M,因此我们甚至不能把所有的数据全部读入内存,因此无法使用快速排序的方法(快排超不超时我就不知道了,n的上限为200万)。但是输入的数据的范围是1到100之间的整数,范围很小,因此我们可以采用计数排序的方法开一个101大小的数组,用data[x]存储x出现的次数,就很简单了啊*//*虽然到这里主要思想完事了,但是别忙着高兴,输出的格式控制是

2014-07-24 14:34:08 433

原创 第一章例题18开放式学分制UVa11078

/*此题最简单的想法就是:用两个for循环计算不同的两个数组元素的差值,再从中挑选出最大值但是此法虽简单,但是时间复杂度为O(n^2),对于n=100000妥妥的超时*//*咋办呢,看看刘汝佳的办法吧,我可没想出来啊对于某一个下标为j的元素,我们只要用j前面的所有的i元素中的最大值减去j元素,就得到了相对于j的结果最大的值在所有的j的结果的最大值中再选出最大的就ok了,实际

2014-07-24 10:39:25 532

原创 第一章例题2突击战UVa11729(贪心)

/*结构体排序+贪心贪心的方法为执行任务用时较长的人应该先交代任务最后n个人中用时最长的时间即是我们要求的总体的最短时间*/#include#include#includeusing namespace std;typedef struct{ int b; int j;}job;bool cmp(job job1,job job2){ ret

2014-07-24 00:54:32 454

原创 Uva10673 Play with Floor and Ceil(拓展欧几里得)

/*如果你做了POJ 1061青蛙的约会,这道题很简单*/#include#includeusing namespace std;long long int x,k,t,p,q;int main(){ void ex_gcd(long long int a,long long int b,long long int& d,long long int& x,long lo

2014-07-23 22:18:40 416

原创 POJ 1061 青蛙的约会

/*题意A青蛙一开始在x位置,B青蛙在y位置。A青蛙每次跳m米,B青蛙每次跳n米,并且都是向右跳的,地球纬线长度是L,地球是圆的,两只青蛙每次跳跃用时相等。 A青蛙想追B青蛙,问多少次后它们能跳到一起。如果它们永远不能相遇,就输出Impossible *//*定理定理一:如果d = gcd(a, b),则必能找到正的或负的整数k和l,使d = a*k + b*l定理二:

2014-07-23 21:29:24 349

原创 HDU1686 Oulipo(字符串匹配可重复)

OulipoTime Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4647    Accepted Submission(s): 1831Problem DescriptionThe French author Geo

2014-07-23 09:37:52 468

原创 HDU 1711 Number Sequence(字符串匹配)

Number SequenceTime Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10571    Accepted Submission(s): 4814Problem DescriptionGiven two

2014-07-22 16:34:47 587

原创 HDU 2899 Strange Fuction(二分查找)

#include#include#include#includeusing namespace std;double y,root,mmin=0;/*如果mmin写为min则会出现编译错误*/int main(){  double bs(double,double);  double f(double);  double F(double);  int

2014-07-21 20:51:21 410

原创 HDU 2141Can you find it(二分查找)

#include#include#includeusing namespace std;const int maxn=505;int a[maxn],b[maxn],c[maxn];int ab[maxn*maxn];int L,N,M,S,X;int main(){bool bs(int [],int,int,int);int i,j;int to

2014-07-21 20:47:25 536

原创 HDU 2199 Can you solve this equation(二分查找)

#include#include#includeusing namespace std;double y,root;int main(){  double bs(double,double);  double f(double);  int t,i,j;  scanf("%d",&t);  while(t--)  {    //scanf("%l

2014-07-21 20:46:31 352

原创 HDU 1969 Pie(二分查找)

#include#include#include#includeusing namespace std;const int maxn=10005;const double pi=4.0*atan(1.0);/*这是真正准确的pi值,cmath函数中的常量M_PI并不是ANSI C标准的*/const double eps=1e-6;int a[maxn];//存储饼

2014-07-21 20:45:51 523

原创 POJ 1915Knight Moves(BFS)

#include#include#includeusing namespace std;const int maxn=300+5;bool visit[maxn][maxn];int dir[8][2]={{2,1},{1,2},{-1,2},{-2,1},{2,-1},{1,-2},{-1,-2},{-2,-1}};int length;//由于在bfs函数的定义中会

2014-07-21 20:41:26 309

原创 POJ 2366 Sacrament of the sum(二分查找)

#include#includeusing namespace std;const int maxn=50005;int a[maxn],b[maxn];int m,n;int main(){  bool bs(int [],int,int,int );  int i,j;  while(scanf("%d",&m)!=EOF)  {    for(

2014-07-21 20:40:36 889

原创 ZOJ 1709 Oil Deposits(油田问题DFS)

#include#includeusing namespace std;const int maxn=105;char grid[maxn][maxn];int dir[8][2]={{-1,1},{0,1},{1,1},{-1,0},{1,0},{-1,-1},{0,-1},{1,-1}};int m,n;//之所以定义为全局变量是因为在dfs函数中要用到int ma

2014-07-21 20:39:44 558

原创 POJ 3624 01背包(DP)

/*此程序采用一维数组dp[i]表示重量为i的时候得到的最大价值之所以不用二维数组是因为空间超出,因为如果以二维dp[i][j]表示当前第i个物品在不超过j重量的背包里的物品的最大价值,则要开出dp[3402][400]大小的空间*/#include#include#includeusing namespace std;const int maxn=13000;in

2014-07-21 20:36:57 371

原创 POJ 1458最长公共子序列(DP)

/*用dp[i][j]记录S1[i]与S2[j] 的LCS 的长度在计算dp[i][j]之前,dp[i-1][j-1],dc[i-1][j]与dp[i][j-1]均已计算出来根据s1[i-1] = s2[j-1]还是s1[i-1] != s2[j-1],就可以计算出dp[i][j]*/#include#includeusing namespace std;const int

2014-07-21 20:32:34 360

原创 NYOJ 矩形嵌套(DP)

/*用矩阵g[i][j]来存储两个矩形之间是否可以实现嵌套*//*用dp[i]来表示到达当前第i个矩形(每个矩形相当于图上的一个顶点)*//*状态转移方程为dp[i]=max{dp(j)+1},其中j是有向无环图ADG中的存在的边*/#include#include#includeusing namespace std;const int maxn=1005;int

2014-07-21 20:32:20 403

原创 HDU 1087最长上升子序列(DP)

Super Jumping! Jumping! Jumping!Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 21618    Accepted Submission(s): 9471Problem Descrip

2014-07-21 20:27:23 342

原创 HDU 2035人见人爱A^B(数字快速幂法)

/*假如题目中的b由上限10^4变为10^9,则原来的暴力法会超时但是由于10^9小于2^30,我们可以利用递推法来求出*//*我们先将B转换为二进制整数例如B=(45)10=(101101)2也就意味着45=2^5+2^3+2^2+2^0                           =32+8+4+1那么x^45 = x^32 * x^8 * x^4 *

2014-07-21 20:22:36 364

原创 CodeForces 230A Dragons(贪心)

Dragonstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputKirito is stuck on a level of the MMORPG he is playing now. To move on in the gam

2014-07-21 20:19:13 912

原创 COJ 1022: 菜鸟和大牛(简单的动态规划,递推)

1022: 菜鸟和大牛Time Limit: 1 Sec  Memory Limit: 128 MB

2014-07-14 23:23:09 1111

原创 COJ 1068: Count the Number of Cycles(向量点积)

DescriptionIn information theory, a low-density parity-check (LDPC) code is a linear error correcting code, a method of transmitting a message over a noisy transmission channel, and is constructed

2014-07-14 22:04:48 632

空空如也

空空如也

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

TA关注的人

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