自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2016 ACM/ICPC Asia Regional Qingdao Online 青岛赛区(已完成8题)

1001<pre name="code" class="cpp">#include <iostream> #include <cstdio> #define min(a,b) ((a)<(b)?(a):(b)) #define min4(a,b,c,d) min(min(a,b),min(c,d)) using namespac...

2016-09-17 21:01:18 270

原创 UVA 1335 Beijing Guards(二分+构造)

这题目偶数的结论可以很容易得出来,但是奇数很麻烦,自己想不出来,看的书上的解释,分成两个区间1-r[1],r[1]+1-p,然后第一个位置取左边的区间,接下来就是偶数尽量往左取,奇数尽量往右取,那么最后一个奇数位尽量往右取,只要它的元素全部都是右边的,没取左边的,那就成功了,所以left]n]==0表明当前定义的物品数目是符合要求,继续缩小范围即可,反之扩大范围。//// main.cpp/

2016-09-30 21:19:45 213

原创 UVA 11549 Calculator Conundrum(floyd判圈法+两种速度慢的一般写法)

这题一定会出现循环的,因为如果截取n位数,那么数的范围是从1~10^n,所以如果最坏情况从1~10^n全部跑完,那么肯定会跑到其中一个已经跑过的数,所以一定会循环。速度最慢的 set+stream 2200ms。#include#include#include#include#include#includeusing namespace std;int next(int n,

2016-09-30 18:45:36 292

原创 UVA 11078 Open Credit System(空间优化+时间优化)

优化后的版本,空间复杂度O(1),时间复杂度O(n)。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/30.// Mail:1016427040@qq.com or jasonshaosjj@gmail.com// Copyright © 2016年 邵金杰. All rights reserved.//#incl

2016-09-30 13:34:34 148

原创 UVA 11462 Age Sort(IO优化)

输入文件有25M,所以输入输出非常大,需要用速度较快的IO。240MS。#include#include#include#includeusing namespace std;int c[100];int main(){ int n; while(scanf("%d",&n)&&n) { memset(c,0,sizeof(c));

2016-09-30 13:24:37 270

原创 UVA 1267 Network(dfs)

先把s节点作为根节点,建立一棵树,k层以上是不用管的,把k层以下的叶子结点放到node数组中,最下面的叶子结点网上走k-1层,然后当前节点作为根,建树,重复循环知道所有的点都没覆盖为止。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/30.// Mail:1016427040@qq.com or jasonshaosjj@gm

2016-09-30 13:03:12 222

原创 UVA 11520 Fill the Squre(水题)

//// main.cpp// Richard//// Created by 邵金杰 on 16/9/30.// Mail:1016427040@qq.com or jasonshaosjj@gmail.com// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#incl

2016-09-30 08:31:23 184

原创 比较字典序的模版函数

#includeusing namespace std;templatebool LexicograghicallySmaller(vector a,vector b){ int n=a.size(); int m=b.size(); int i; for(i=0;i<n&&i<m;i++) { if(a[i]<b[i]) retur

2016-09-30 08:22:40 570

原创 UVA 12097 Pie(二分)

很明显,二分面积就可以求解。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/30.// Mail:1016427040@qq.com or jasonshaosjj@gmail.com// Copyright © 2016年 邵金杰. All rights reserved.//#include#include

2016-09-30 07:57:41 531

原创 UVA 12124 Assemble(二分)

求最小值中的最大值,二分答案找出。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/29.// Mail:1016427040@qq.com or jasonshaosjj@gmail.com// Copyright © 2016年 邵金杰. All rights reserved.//#include#inc

2016-09-29 23:21:29 242

原创 UVA 10795 A Different Task(汉诺塔构造)*

首先找出最大的起始柱和目标柱不同的最大k,然后只要让接下来的k-1个盘子按顺序放到中间柱上就可以了。然后因为放盘子是可逆的,具有对称性,所以分别从起始状态和结束状态往中间状态靠,然后起始到中间+结束所走的步数+k到目标状态的步数(1)就是最后的答案。还有一个结论就是1~i-1的顺序的盘子放倒目标状态需要(1//// main.cpp// Richard//// Created

2016-09-29 21:31:12 210

原创 汉诺塔问题

杭电关于汉诺塔的题目有十几题,有空可以做一下。#include#include#include#includeusing namespace std;void move(int n,int x,int y) {printf("%d:%c->%c\n",n,x,y);}void hanoi(int n,int x,int y,int z){ if(n==1) move(n,

2016-09-29 21:14:38 181

原创 UVA Chinese Mahjong(暴力枚举+模拟)

每种牌只有34种,所以可以直接暴力枚举,然后先找出两张做将,然后接下来枚举三张做刻子或顺子就可以了。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/29.// Mail:1016427040@qq.com or jasonshaosjj@gmail.com// Copyright © 2016年 邵金杰. All righ

2016-09-29 19:27:03 258

原创 UVA 11384 Help is needed for Dexter(构造题)

这题序列是递增的,出几组数据就很好推出来,剪掉中间的,那么后面的序列长度会和前面序列一样,那么数据范围马上变成1/2了。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/28.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#inc

2016-09-29 13:34:15 177

原创 UVA 1352 Colored Cubes(暴力搜索枚举)

一个正方体只要确认上顶面和前面的两个面就能被确定下来,那么上顶面有六种情况,在上顶面被确认的前提下,前面有四种情况,所以一个正方体通过旋转一共有24中姿态,只要把这可能的26种姿态的排列,打印出来,然后在主函数里枚举匹配即可。下面是枚举可行排列的代码:#include#include#include#includeusing namespace std;int Left[6]={4,

2016-09-29 13:29:28 201

原创 UVA 11464 Even Parity(暴力枚举)

因为如果枚举全部点,肯定会超时,所以枚举第一行,然后根据第一行来算出接下来的n-1行,最后取最优就行。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/28.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#inclu

2016-09-29 00:12:50 223

原创 UVA 2995 Image is Everying(模拟)

主要是转到三维上进行模拟,然后两个侧面配对,如果失败,那么减去这个单位立方体,继续检查,知道没有配对失败为止。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/28.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#i

2016-09-28 23:16:44 201

原创 UVA 10881 Piotr's Ants(思维题)

当两只蚂蚁相撞时当做两只蚂蚁互换,直接传过去,但是相对位置不会变,最后处理一下就好了。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/28.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#include#in

2016-09-28 19:49:41 268

原创 UVA 3708 Graveyard(思维)

这道题是用缩放坐标来简化题目的,但是有一个点需要证明,那就是是否会在右两个及以上的墓碑放在同一个点上,答案是不会。因为如果放在同一个点,那么两个点极端情况也就是0.5和1.4999999...,这样的话放入最近的点就都是1,但是这种情况是不可能的,因为这两个数之差小于1,而放缩后的点最小也是1,放缩点的公式为(i/n)*(n+m),这种情况是放大的,所以放大之后的数之差最小也是1。////

2016-09-28 18:42:50 246

原创 UVA 11300 Spreading the Wealth(思维题)

这题把一个一般问题转成了一个几何问题,思路参加白书第三题。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/28.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace s

2016-09-28 18:11:47 166

原创 UVA 11729 Commando War(贪心)

//// main.cpp// Richard//// Created by 邵金杰 on 16/9/28.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#include#includeusing namespace std;struct node{ i

2016-09-28 16:34:28 179

原创 UVA 11292 Dragon of Loowater(贪心)

//// main.cpp// Richard//// Created by 邵金杰 on 16/9/28.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;const int maxn=20000+10;in

2016-09-28 16:07:36 191

原创 HDU 4513 完美队列II(最长回文子串)

这题扩大半径的时候需要特判,晚上脑子乱,弄了好久。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/27.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;

2016-09-28 00:06:28 241

原创 HDU 3294 Girl's research(最长回文子串)

//// main.cpp// Richard//// Created by 邵金杰 on 16/9/27.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;const int maxn=200000+100;

2016-09-27 23:02:17 212

原创 HDU 3068 最长回文子串(manacher算法)

//// main.cpp// Richard//// Created by 邵金杰 on 16/9/27.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;const int maxn=110000+100;

2016-09-27 20:35:07 218

原创 HDU 4512 完美队列I(LCIS)

这题的关键点就是第二位的限制是n-i+1,这样就会把正在匹配的a[i]也算入其中,目的是为了有可能最后的长度是奇数的,那么有一个点是不对称的,所以是自己匹配自己,只要特殊判断一下即可。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/27.// Copyright © 2016年 邵金杰. All rights reserved

2016-09-27 18:15:56 448

原创 HDU 1423 Greatest Common Increasing Subsequence(LCIS)

//// main.cpp// Richard//// Created by 邵金杰 on 16/9/27.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;const int maxn=500+10;int

2016-09-27 16:24:26 204

原创 HDU 5904 LCIS(最长上升公共子序列)

这题有点特殊,那就是上升序列是严格递增的,那么只需要访问x的前一个点的连续值来更新x的连续值,时间复杂度O(n)即可。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/27.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#incl

2016-09-27 14:16:34 234

原创 HDU 1074 Doing Homework(状压dp)

输出路径时要注意,越后面的作业越后输出,所以正序遍历时,一旦有成绩小于等于马上更新pre指针,那样的话就能保证做作业是字典序了。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/27.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include

2016-09-27 10:21:45 195

原创 HDU 1227 Fast Food(dp)

这题状态方程定义不难,难的是状态的转移,如果要在i~j之间设仓库,那么仓库一定是中间那个点,根据这个性质,先初始化1~i的设一个仓库的长度,然后从设2个仓库开始dp,转移方程为dp[i][j]=min(dp[i][j],dp[i-1][m]+cost[m][[j]),m的范围为i-1~j-1,代表1~m设立了1-i个点,然后在m~j设立了一个点,那么刚好可以转移。//// main.cpp

2016-09-26 20:50:21 257

原创 HDU 1158 Employment Planning(dp)

//// main.cpp// Richard//// Created by 邵金杰 on 16/9/26.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;const int maxn=15;int h,s,

2016-09-26 19:02:46 217

原创 HDU 3311 Hie with the Pie(状压dp+TSP问题)

因为每个点可以重复走,所以从这一个点到下一个点走最短路。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/26.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;

2016-09-26 14:37:57 263

原创 HDU 2059 龟兔赛跑(dp)

//// main.cpp// Richard//// Created by 邵金杰 on 16/9/26.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;const int maxn=100+10;doub

2016-09-26 10:29:48 217

原创 HDU 3008 Warcraft(dp)

//// main.cpp// Richard//// Created by 邵金杰 on 16/9/25.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;const int maxn=100+10;int

2016-09-25 21:25:07 321

原创 HDU 1422 重温世界杯(最长正子段长度)

//// main.cpp// Richard//// Created by 邵金杰 on 16/9/25.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;const int maxn=100000+100;

2016-09-25 19:05:07 339

原创 HDU 1080 Human Gene Functions(变形的LCS)

这题一开始写成了先算出LCS长度,然后往回跑,把公共子串剔除,然后算值,最后发现这样做答案就固定了= =,无法求出最大值了。后来看到题解,恍然大悟,发现自己实在太蠢了,这题三种选择,对应字符匹配,上字符对应-,下字符对应-,然后LCS框架上去了就可以了。#include#include#include#include#includeusing namespace std;const

2016-09-25 15:06:21 193

原创 HDU Free DIY Tour(dp)

//// main.cpp// Richard//// Created by 邵金杰 on 16/9/25.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;const int maxn=1000+10;int

2016-09-25 12:47:19 228

原创 HDU 1300 Pearls(dp)

这题题目里说了,给出的数据是有一定递增的,所以不用排序。//// main.cpp// Richard//// Created by 邵金杰 on 16/9/25.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;

2016-09-25 09:38:35 233

原创 HDU 1010 Tempter of the Bone(dfs+奇偶剪枝)

//// main.cpp// Richard//// Created by 邵金杰 on 16/9/24.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;const int maxn=10+5;char m

2016-09-24 23:35:17 149

原创 Coderforces 373(Div.2)

A#include#include#include#includeusing namespace std;int main(){ int n; while(scanf("%d",&n)!=EOF) { int x[100]; for(int i=0;i<n;i++) scanf("%d",&x[i]); if(

2016-09-24 09:19:30 231

空空如也

空空如也

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

TA关注的人

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