自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 HDU 5046 Airport (DLX可重复覆盖+二分)

题意:在N个城市选出K个城市,建飞机场(1 ≤ N ≤ 60,1 ≤ K ≤ N),N个城市给出坐标,选择这K个机场,使得从城市到距离自己最近的机场的 最大的距离 最小。输出这个最小值。思路:我居然想歪,歪到想到了模式识别的K均值算法,简直瞎搞2333333.(虽说和DLX一样都是暴力)DLX可重复覆盖+二分距离制关系表即可代码:kuangbin模板,注意爆

2017-07-25 20:11:37 342

原创 zoj 3820 Building Fire Stations (求树的直径)

题意:给你一棵树求两个点使得树上所有点到这两个点路径长度的最小值最小思路一:很容易想到从树的中心分开成两棵树,再找两棵树的中心。O(n)要考虑树的拆分        注意到不一定是二叉树的拆分:首先树的中心一定在直径上对于类似1——2——3——4中心为边,删除中心边即可对于类似1——2——3——4——5中心为点,任意删除中心的一侧即可

2017-07-25 20:11:04 347

原创 HDU 5538 House Building (求表面积)

题意:给出一个由立方块堆起的物体,求其表面积思路:扫一遍即可代码:#include using namespace std;const int MAXN=55;int a[MAXN][MAXN];int dirx[]={0,0,-1,1};int diry[]={1,-1,0,0};int main(){ int T,n,m; scanf(

2017-07-24 13:17:14 337

原创 HDU 5536 Chip Factory (字典树)

题意:给出1000个数任取三个数求max(ai+aj) xor ak思路:先计算出1e6个 ai + aj将这1e3个数转化为2进制建树。由于数值小于1e9,树深小于32。将1e6个 ai + aj 也转化为二进制,与trie树做抑或匹配。每次匹配时先删除ai + aj 所在的链,再做匹配,匹配结束后再把链重新加入。复杂度 1e6*32*5常数小的话3s

2017-07-24 13:15:25 298

原创 HDU 5532 Almost Sorted Array (求逆序数)

题意:给你一组数,能否删除一个后使他成为升序或者降序思路:正反各求一边逆序数即可。代码:#include using namespace std;const int MAXN=1e5+10;int a[MAXN];int b[MAXN];int n;bool solve(){ b[n]=a[n]; for(int i=n-1;i>=0;i--

2017-07-24 13:12:37 325

原创 HDU 5527 Too Rich (贪心+DFS)

题意:有1,5,10,20,50,100,200,500,1000,2000十种面值的钱币各ci个,现在要凑出p元,问最多可以用多少钱币凑出思路:取最多的钱币,就是要多取面额小的钱币。从小贪心到大面额,存在一个问题:例如:110 19个1 2个20 2个50这组数据我们无法正确的从1开始贪心,以保证贪心的结果是正确的。那么,我们可以转化一下思路多取面额小的钱币即

2017-07-24 13:10:55 301

原创 HDU-5122 K.Bro Sorting (逆序数)

题意:给一个1~n的一种排列,每次随机选一个数,如果下一个数比他小,则交换,一直进行上述过程直到下一个数比他大。最少经过多少次这样的循环能将其变成升序?思路:答案等于数列逆序数字的个数代码:#include using namespace std;const int MAXN=1e6+10;int a[MAXN],b[MAXN];int main(){

2017-07-24 13:07:44 1629

原创 HDU 5118 GRE Words Once More!(搜索剪枝)

题意:给定一个有无环图,边权代表一个字母(事实上用数字表示的),然后给定2~n个点的特殊性,1表示特殊,0表示不特殊,从1出发,到一个特殊点停止,这条路径上的所有字母拼成一个单词,将所有单词按照字典序排序后,然后Q组询问,问第k个单词的长度是多少。思路:参考自:http://blog.csdn.net/yuanjunlai141/article/details/73744137

2017-07-24 13:05:23 1984

原创 HDU 5113 Black And White (搜索剪枝)

题意:给一个N*M的格子,给出K种颜色以及每种颜色的数目,保证数目和相加 = N*M,求一种方案使得上下左右相邻的格子颜色都不相同。思路:搜索暴力剪枝:剩下的格子的数量+1必需是剩余最多种类棋子的两倍代码:#include using namespace std;int a[30];int vis[6][6];int dirx[]={0,0,1,-1};

2017-07-24 13:00:01 363

原创 HDU 5112 A Curious Matt (水题)

题意:有个人在数轴上跑步,已知他在某些时间点时的位置,求他的最大速度。思路:按时间sort然后依次处理即可代码:#include using namespace std;const int MAXN=1e6+10;typedef struct Node{ double t,x; bool operator < (const Node a)const{

2017-07-24 12:58:09 304

原创 HDU 5971 Wrestling Match (二分图匹配)

题意:给你n个人,m场比赛,x个好人,y个坏人,对于每一场比赛,必有一个好人一个坏人,问是否能将n个人完全区分成好坏人。思路:并查集或二分图匹配对于已经确定的好人和坏人先行进行归类,bfs搜一遍即可。对于剩下未确定阵营的人随机选取一个人归为好人或坏人bfs再搜一遍。若两次bfs中出现同一人被分为不同阵营的情况 或 两次bfs后仍有未分配阵营的人 return NO;

2017-07-24 12:53:54 430

原创 HDU 5972 Regular Number Bitset (字符串匹配shift and/or)

题意:给一个长度为n的模式子串,子串的每个位置分别可以是一些数字,即一个位置可以被多个数字匹配。再给定一个母串,问子串可以在哪些位置和母串匹配,并且输出匹配成功后的所有子串.思路:KMP ?(×)  前后状态互不包含,状态无法转移AC自动机?(×)  模式串长1000,每个位置至多有10种状态  空间复杂度10^1000Algorithm:shift a

2017-07-24 12:50:49 391

原创 修道士和野人问题

优化版 v1.0i7 6500U 4G内存 2s内可以对 1000 2000 输入建图建图复杂度取决于边数。description:假设有n个修道士和n个野人准备渡河,但只有一条能容纳c人的小船,为了防止野人侵犯修道士,要求无论在何处,修道士的个数不得少于野人的人数(除非修道士个数为0)。如果两种人都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出一个小船来回次数

2017-07-07 10:59:22 1976

学生管理系统

系统编的不是很好,别当答案用,纯粘容易错

2016-10-26

空空如也

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

TA关注的人

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