自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ONE_PIECE的专栏

Good good study

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

原创 UVA10025连续自然数添上正负号得到固定的数

这题自己想的是找出大于k的最小的n使n*(n+1)>=k即可,如果n*(n+1)-k为偶数肯定可以把后面的一个数变成负号即可,如果是奇数则可以添加俩项一正一副把差值变成偶数,可是却忽略了如果n原本是偶数只需要再添加一个数就可以把差值变成偶数。#include#include#include#include#include#include#include#include#

2015-07-31 21:08:40 409

翻译 HDU5326多校签到题,搜索子孙节点,

dfs一发即可:#include using namespace std;const int N = 110;vector E[N];int in[N], son[N];bool vis[N];void dfs(int u){ vis[u] = true; son[u] = 1; for(int v: E[u]) { dfs(v);

2015-07-31 13:04:02 396

翻译 HDU5319暴力扫加标记

其实这题看清题意的话就会知道并不存在什么最优,只要找到一个方向暴力往下扫就行了,然后加上标记#include#include#include#includeusing namespace std;const int maxn=1000000;char s[56][1000],dp[56][1000],db[56][1000];int dir[4][2]={1,1,-1,-1,1,

2015-07-31 13:00:14 427

翻译 HDU5317求连续区间类每个数的质因数种类数,每个合数都能它前面的质数相乘得到

这题一直在乱想,什么都没想出来,最后被队友A了,其实只是没有想到很容易想到的每个合数都能由它前面的质数相乘得到,另外很容易知道,1e6的之内的数据质因数种类数做多为7,然后打表每个数的种类数,然后二位数组递推得到每个数前面0~7的质因数种类数的个数,从而求得区间内每个种类数的质因数个数,从而求得GCD。#include using namespace std;int F[1000

2015-07-31 12:52:45 596

原创 UVA253正方体的旋转问题

正方体选择一个为顶面,再在剩下四个中选择一个为侧面,则唯一确定一个正方体,本题枚举24种。#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace st

2015-07-31 12:28:41 589

原创 UVA10785

这题题意略为坑,在满足上述条件的情况下输出最小字典序。#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define LL long long#de

2015-07-29 19:29:52 322

原创 uva755

最后写的判断相等的函数记得所有数据相等的情况,所以记得让i=slen,多判断一位#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define LL

2015-07-29 18:19:58 392

原创 UVA10194getline()的用法注意

这题有个很大的坑点:it must be done case insenstive.这句话的意识在这里是部分大小写,交了俩发WA,感觉自己没什么错的,看了下别人的,发现最后面的排序部分大小写,真的坑。另外写代码的时候发现,getline(cin,string)一直崩溃,不知道为什么,然后就把string改成了char字符数组,用gets输入,一直以为是getline()有什么问题,后来看到

2015-07-29 16:24:53 420

原创 uva123multimap的稳定排序和set的查找

这题刚开始自己撸了一发代码及其繁琐的代码,虽然AC了,但是感觉太烂了,百度了一下,发下自己截取单词的部分写残了,写复杂了,另外起初WA了一发,是因为不知道string自带的排序是不稳定排序。另外这题最简单的做法是用set加上multimap,multimap自动在插入的时候进行排序,而且是稳定排序,另外set自带的查找函数也省去了写查找了。自己的代码:注释部分是自己截取字符串的

2015-07-29 11:21:08 498

翻译 UVA120istringstream和deque的用法

这题自己敲的代码有些繁琐了,当然很多都是可以简化的,有些反复使用的东西完全可以写成函数的,当然即使写成函数也比较麻烦,其实只要记得每次看最前面的位置是不是当前最大值,不是的话先把最大值翻到最前面然后再翻到这个位置,当时不知道想的什么,写的这么麻烦,当然最简便的方法是使用istringstream和deque。分别贴上代码:前面是别人简化些的代码,后面的是自己写的脑抽的代码,最后面是最简

2015-07-28 19:36:02 304

翻译 UVA10494大数类模板

做了几个题,重载了一下加法,乘法,除法,减法,虽然都不是很标准,但是那几道题目都A了,这道题不用模板其实很好做,一边截取,一边做除法存下了,同时做mod就行了。贴下我自己敲的模板和这道题的简单做法:#include#include#include#include#include#include#include#include#include#include#incl

2015-07-27 17:29:27 329

原创 HDU5312string类的字符串赋值函数和查找函数

当时撸的时候第一发没看清题就撸了一发,后台数据太水给过了,后来看了看发现读错题了,又撸一一发string交上去了#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define LL l

2015-07-27 08:51:27 453

翻译 HNOJ13312注意精度的处理问题和三角形对应的外界圆的圆心交的求法

这题可以用数学几何来处理,即用极角相减就可以得出三角形一个角对应的圆心角,然后枚举是为了处理精度的问题。当然也是可以用ACM计算几何来做,就是求出三角形的外界圆圆心和半径,然后求出圆心角,然后用gcd求出公约数,用2*pi除以公约数即可以得出边数,注意四舍五入,另外注意实数的gcd用fmod;贴出前一种做法的代码;#include#include#include#includ

2015-07-27 08:47:37 618

翻译 HDU5312三角形数即6的倍数

这个题看上去是一个贪心, 但是这个贪心显然是错的.事实上这道题目很简单, 先判断1个是否可以, 然后判断2个是否可以. 之后找到最小的$k (k > 2)$, 使得$(m - k) mod 6 = 0$即可.证明如下:$3n(n-1)+1 = 6(n*(n-1)/2)+1$, 注意到$n*(n-1)/2$是三角形数, 任意一个自然数最多只需要3个三角形数即可表示. 枚举需要$k$个, 那么

2015-07-26 23:34:49 300

翻译 HNOJ13303字符串%3题

#include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long LL;const LL INF = 0x4ffffff;const double EXP =

2015-07-25 18:53:36 487

翻译 HNUOJ13302和13308贪心枚举有俩种情况的想办法直接枚举俩种情况每次枚举比较值

13302:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include

2015-07-25 18:46:34 640

翻译 hdu5305dfs对边的搜索,俩个数组记录度数

自己做的时候一直想把这个无向图转化为有向图,然后就可以利用入度==出度来判断做题了,然而根本不需要,用俩个数组分别记录,并让初始值都等于总度数的一半,然后进行搜索,如果可以搜索到最后则这时所有点的俩个度数都为零,即offline等于online。记得思路不通的时候试着从反面想下#include#include#include#include#include#include#

2015-07-25 11:54:25 392

翻译 HDU5299拓扑排序和博弈

#include#include#include#include#include#include#includeusing namespace std;typedef double db;typedef long long LL;#define pb push_backconst db EPS = 1e-8;const int MAXN = 50015 ;db sqr

2015-07-25 09:21:34 402

翻译 HDU5297莫比乌斯函数,容斥原理从1到n中数字中去掉形如a^r的数字

#include#include#include#include#includeusing namespace std;const __int64 mx=2000000200000000000LL;vector data[63];bool prime[63]={false,false,true,true,false,true,false,true,false,false,false

2015-07-25 09:18:17 485

翻译 HDU5298立体几何

#includeusing namespace std;struct P{ __int64 x,y,z;};struct Plane { __int64 a,b,c,d;};Plane pls[110];struct B{ __int64 x,y,z,r;};B bs[20];int m,n;inline int fp(const Plane& pl,const

2015-07-25 09:17:44 590

翻译 HDU5296从一棵树上取出若干不连通的点

#include#include#include#include#include#include#include#include#include#include#include#define cl(a,b) memset(a,b,sizeof(a))#define max(x,y) ((x)>(y)?(x):(y))#define min(x,y) ((x)<(y)?(x

2015-07-25 09:13:59 470

翻译 HDU5295给出俩条线段和中点给出长度求点坐标

#include #include #include #include #include using namespace std;const double eps = 1e-6;int sgn(double x){if(fabs(x) return x > 0 ? 1 : -1;}struct P{double x , y;P(d

2015-07-25 09:09:41 795

翻译 HDU5293树形DP取一棵树上不共点的任意个树枝

#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#include#include #include #define cl(a,b) memset

2015-07-25 09:00:24 425

翻译 HDU5292魔方满足什么条件能够还原

http://blog.sina.com.cn/s/blog_15139f1a10102vnx5.html题解:#include #include #include #include #include using namespace std;int a[] = {-1,1,1,-1,1,-1,0,0,1,-1,-1,1,0,0,-1,1,-1,1,1,-1,0,0,0,0};i

2015-07-25 08:56:57 587

翻译 HDU5291DPn堆糖果取出相等数目的糖果

#include#include#include#include#include#include#includeusing namespace std;#define mod 1000000007typedef long long lld;int s[2010];lld a[400010];lld dp[2][400010];void odd(i

2015-07-25 08:47:49 900

翻译 HDU5290树形DP一颗树扔炸弹几次能炸完

多校这些神题像我这种渣渣理解起来也是很难的,先贴下代码有能力的时候再去理解吧#include#include#include#include#define INF 100000000#define N 100010#define U 200010#define M 105using namespace std;int dp,p[U],pre[U],n,tt[U],a[N],i

2015-07-25 08:45:59 1053

翻译 HDU529最小割和单源最短路

没搞过图论,看了一天的标程也没完全搞明白,懂那么一点,抄袭了一遍标程,交上去结果CE,呵呵,然后交了一发标程还是CE,呵呵,回头有空再演究下,贴一发CE的代码:#include #include #include #include #include #include #include #include #include #include using namespac

2015-07-24 19:48:39 416

翻译 hdu5289RMQ求区间最大最小值和单调队列维护区间最大最小值

RMQ和单调队列都可以求区间最大最小值,但相对来说,单调队列更快一些RMQ代码:枚举左端点,二分右端点。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define LL long longc

2015-07-24 08:46:35 709

原创 cf560B一个矩形如何能包含另外俩个矩形

自己画矩形画了半天唯恐有什么漏的,最后没时间了,怒交一发,竟然过了,俩个矩形本来的摆法有四种,然后另外一个矩形套在外面,能套下的话有俩种放法:#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#defi

2015-07-23 21:18:02 634

翻译 cf559B字符串的最小表示法和递归的写法

这题有俩种做法,一种递归,一种字符串的最小表示法,刚开始自己写了一发递归,结果一个递归里面有俩个return 0,呵呵了。自己连正确的递归姿势都不会,其实可以把俩个return放到俩个函数里面。递归法:#include#include#include#include#include#include#include#include#include#include#in

2015-07-23 21:12:55 565

翻译 cf559A每个角都是120度的六边形补成正三角形

每个角都是120度的六边形显然可以补成正三角形,然后用正三角形的面积减去补出来的三个正三角形除以一个边长为1的正三角形面积即为这个六边形包括的边长为1的三角形的个数。这个题起初自己想的以为必须左边的边和右边的边相等才能使每个角都是120度,即b==f,其实只要左边的长度和右边的长度一样就可以即b+c=e+f;#include#include#include#include#

2015-07-23 21:07:05 667

翻译 杭电5288如何查找一个数字的最左边因子和最右边因子的下标,先处理100以下的数字,100以上的数字则是sqrt(n)

对于区间问题,一般统计满足区间的区间对结果的贡献值为多少,这个题就可以统计每个数字的因子的左右最近的值得下标l[i],r[i],则这个数字对答案的贡献值为(i-l[i])*(r[i]-i),这个题o(n*n)的算法显然不行,于是看到输入数据为10000从这里下手,先处理1~100,按照先输入的必在后输入的前面的关系,正向扫描统计l[i],同时反向扫描统计r[i],然后按照ai的倍数关系,

2015-07-22 19:24:12 373

翻译 杭电5285二分图染色和并查集

这道题有俩种做法,一种二分图,一种并查集,但是实际上俩种本质上是一样的,二分图是在同一条线段的俩段染上不同的眼色,而并查集是用二维数组1和2判判奇偶层,和是否相容,都是遍历所有的树。二分图:#include#include#include#include#include#include#include#include#include#include#includ

2015-07-22 11:21:02 424

翻译 计蒜客429根据输入特点划分圆求扇形面积

做题的时候不能不着边际的乱想,注意这题的输入数据特点,以及圆的特点,把圆划分为360,标记每个度数的最大值然后求扇形面积,另外注意一度的扇形也是能求扇形面积的#include#include#include#include#include#includeusing namespace std;#define LL long longconst double pi=acos(

2015-07-21 18:13:17 490

翻译 计蒜客430同一个节目的不同期竟然可以同时录制

做这个题的时候我一直在想同一个节目的不同期是否能够同时录制,然后就看到那句话在节目都连续录制的假设下,就把这句话理解成了同一个节目必须连续录制,而不能同时录制,然后就一直思考同一个节目不同时录制的情况下的最优解,就死在了这个问题上。后来看了题解竟然发现可以同时录制。然后这题就是枚举y,然后贪心,用z去弥补差值,然后比较每次解的大小,取最小。#include#include#

2015-07-21 09:52:51 469

原创 计蒜客428俩个8位制年月日之间的差值

月份打表,数字笔画打表,使用月份的二维数组判断日期的合法性,使用数字的一维数组直接计算日期的笔画数,计算年差值,用各自的总和相减即可#include#include#include#include#include#include#include#include#include#include#include#include#include#include#d

2015-07-21 08:17:41 430

原创 strstr函数的被查找字符串与查找到的字符串是互相影响的,同时可以只用i--控制循环不变

这题刚开始写出来之后一直不知道哪里错了,就一部一部的dbug,最后终于发现原来strstr的被查找字符串改变会影响查找到的字符串,感觉自己写的不够简便,查了一些别人的,看到别人是用strstr函数的查找到的字符串会影响被查找的字符串的性质来写的,代码中注释部分是用被查找影响查找字符串的性质做的,比较麻烦,下面是用其逆性质来写的,比较简单,另外注意此题使用i--控制循环不变而不需要使用死

2015-07-20 20:59:48 1342

原创 uva10185set的自动排序和自动去重以及遍历和string的的辅助问题

set的排序和去重以及遍历看下面程序,string是一个类所以不能把一个char型字符赋值给string,但是char型数组可以,另外在不同的编译器上对于string以什么结尾的说法不一,最好不要用string的有效字符的后面一位来做一些事情。#include#include#include#include#include#include#include#includeus

2015-07-20 16:43:26 559

翻译 uva10878看清图

这题看清图那个是_而不是——,不然就一次A掉了#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;char s[20];int main(){ while(gets(s))

2015-07-20 16:35:57 361

原创 UVA409strstr()函数

这题可以用strstr()函数做也可以不用,写贴上不用的,包含文件:string.h函数名: strstr函数原型:extern char *strstr(char *str1, const char *str2);语法:* strstr(str1,str2)str1: 被查找目标 string expression to search.str2

2015-07-20 13:48:17 431

空空如也

空空如也

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

TA关注的人

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