自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qqspeed

希望CCNU的ACM越来越好,再见!

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

原创 hdu 4760

题目大意:  3种操作  E i n,对应n个区间,每个区间加一个标记i;                         D i ,抹去前面的标记i;                         F s t.如果点s和点t的标记有交集则输出"F",否则输出"D': 想法:  我悔过,比赛时,感觉题目太复杂,没管它,赛后来看了看,没想到暴力能水过.        先把数

2013-09-29 22:00:19 888

原创 hdu 3664

题目大意:有一个包含1~n的序列S,f(S)表示S中s[i]>i的个数,现知道f(S),求S 的个数想法:用dp[i][j]表示大小为i,f值为j的序列个数,已知dp[i-1][j-1]和dp[i-1][j];      对于dp[i-1][j-1],显然第j个数,有(i-1)-(j-1)种方法来达到dp[i][j],也就是用j来代替dp[i-1][j-1]中,s[i] 

2013-09-27 18:59:40 912

原创 2013 2013 ACM/ICPC Asia Regional Changsha Online - H Hypersphere

在k维空间里有个半径为r的打球,现在把它分解成一个一个半径为1的球,当分解出k个球,球就要消失,问最后有多少个小球。大球半径为l+sqrt((l-1)*l);很显然就是一共能产生多少个小球来对k取余.至于k维空间球体的体积,维基百科上有,有一个很复杂的公式,所幸,这里得分子分母都有那个复杂的系数,也就是没有了,最后求得就是floor((l+sqrt(l*(l-1)))^k)%k

2013-09-27 11:50:38 828

原创 hdu 4617

题目大意:3维空间中有n个圆柱,高为无限长,知道底面圆心,和半径,问是否会有两个圆柱,出现相交,如果没有,输出最少差多少相交。想法:求出圆心的方向向量,这样就可以看成求出两个经过圆心的方向向量所在直线的距离,也就是异面直线的距离(参照:http://blog.csdn.net/zhuhuangjian/article/details/11739851),如果全部>ri+rj,则输出min(

2013-09-27 11:10:10 829

原创 hdu 4571

题目大意:n个点(时间消耗,满意值),m条边(起点,终点,消耗的时间),时限T,旅途的起点,终点.         每个点你可以选择参观和不参观(包括起点终点),如果你选择参观某个点,那满意值一定要大于上一次参观的,最后整个旅途的最大满意值想法:先用floyd求出每两个点的最短距离,然后就是dp了.以前就Wa了,今天看着学长的代码,发现了自己的错误,他只要求

2013-09-19 16:42:05 842

原创 hdu 4001

题目大意:  n个立方体,一共有三种类型,每一种的方法有自己的规则,问组合后的最大高度想法:  膜拜Wiking大神,轻松的说出了建图方法,然后就是加一个超级源点,以它为起点,对图进行SPFA求最长路,如果方块的类型是0,那么几个相同的会出现环,所以先把这些缩成一个点#include#include#include#include#include#incl

2013-09-19 10:35:17 1053

原创 hdu 4007

题目大意:在一个X-Y平面内有n个点,用一个r*r的正方形去覆盖,问最多覆盖多少个点想法:先把坐标离散化,那最坏情况下就是一个n*n的区域,然后求最大子矩阵(矩阵的边长不能超过r)#include#include#include#includeusing namespace std;#define N 1005int a[N],b[N],n,r,k1,k2;

2013-09-19 10:31:19 1112

原创 hdu 4004

题目题目大意:青蛙要跳过长为L的河,中间有n个石头供他休息,但它只能跳m次,问这m次里所跳距离最大值的最小可能想法:先把石头排序,算出相邻石头的距离b,然后就等价于,把b序列分成m段,对于每一段和的最大值最小化.        二分答案,显然答案在max(b[i])和l之间,我们只需要判断当答案是mid时,把序列分成了多少段逐渐二分#include#inclu

2013-09-19 10:27:00 952

原创 九度oj 1536 树的最小高度

题意:给你一颗树,你可以选择任意结点为根,求树的高度的最小值想法:求树上的最长距离,答案就是(最长距离/2)向上取整#include#include#include#includeusing namespace std;#pragma comment(linker, "/STACK:1024000000,1024000000")inline int input(){

2013-09-17 21:24:30 1084

原创 Poj 1269

求两直线的交点用的高数书上的方法直线:(x-x1)/m=(y-y1)/n;(m,n)为方向.直线上的点px=m*k+x1,py=n*k+y1;然后代入另一条直线求出k,进而求出交点#include#include#includeusing namespace std;struct Point{ double x,y; Point(do

2013-09-17 16:55:19 925 1

原创 HDU 4741

题目求异面直线的间的最短距离,并且求出最短距离的线段在两直线上的点。比赛时,在网上找了个资料,需要解个二元一次的方程,估计自己写龊了,奇葩数据,总会出现误差。后来重新找了个,在这先求出两个点,直线1上的点应该是直线1和(直线2与1.2公垂线确定的平面的交点)公垂线,以及平面,以及平面与直线的交点的做法参照那篇博客,或者回去看高数书,应该都行#include

2013-09-16 16:49:17 1382

原创 codeforces CROC-MBTU 2012, Elimination Round (ACM-ICPC) G题 && HDU4039

题目codeforces题目hdu题目大意:  比如 a~b~c  那么a和c就有个共同朋友  b,求每个a的c的个数,要求b最多codeforces上可能最多的b是0,这时就要输出k-2(k是人数);hdu上最多的b是0,输出"-";直接暴力,找每个人a的朋友的朋友c,并且这个c不是a的朋友Codeforces:#include#

2013-09-14 11:14:24 1082

原创 hdu 4707

题目题意:找出距离0点距离>d的点数题意:我用的bfs求出点的距离#include#include#include#include#includeusing namespace std;#define N 100010int t,n,d;int a,b;vectore[N];int dis[N];bool vis[N];int main(){

2013-09-09 14:49:16 1595 3

原创 HDU 4708

题目题意:有一个n*n的矩阵(n%2==1),把它想象成一圈一圈的,然后每次每一圈可以逆时针和顺时针旋转一个单位,然后求主对角线和斜对角线元素之和,是和最大,并且在最大值里,旋转次数最小想法:可以预处理出每一圈的元素,要所有和最大,很明显每一圈的四个顶点和要最大,然后就YY吧#include#include#include#include#include

2013-09-08 21:51:21 1011

原创 hdu 4715

题目已知n,求两个素数(a,b),要求a-b=n,且(a+b)尽量小,如果不存在这样的(a,b),就输出"FAIL"想法:二分找出比n大的最小的素数,然后直接暴力#include#include#includeusing namespace std;#define M 5000001typedef long long ll;bool vis[M];int num;i

2013-09-08 21:45:33 1100

原创 HDU 4417 Super Mario

题目题意:求某一区间想法:求出某一区间>h的最小的数是区间的第k大数,那么答案就是k-1;            划分树+二分#include#include#includeusing namespace std;inline int input(){ int ret=0; bool IsN=0; char c; c=getchar

2013-09-07 19:40:37 1040

原创 Codeforces Round #199 (Div. 2) (ABC)

A:#include#include#define N 100010int a[N],y[N],x[N],z[N];int n;int vis[8];int main(){ while(~scanf("%d",&n)) { int num=0; memset(vis,0,sizeof(vis)); for(int

2013-09-07 19:25:59 874

空空如也

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

TA关注的人

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