自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

随风而行的博客

岁月无声

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

原创 51nod-1125 交换机器的最小代价

地址:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1125思路:所有机器a[]保存下标由小到大排序,对于不在其正确位置的数就需要改变位置,那么肯定是从最小值开始交换,若最小值a1不在其正确位置,那么它肯定是占了别人的位置,因此与其交换,这样一直到a1也在其正确位置为止,这样一直都是a1在和别人交换,因此代价是最...

2018-08-31 17:11:57 273

原创 AC自动机模板题-HDU-2222-Keywords Search

地址:http://acm.hdu.edu.cn/showproblem.php?pid=2222Code:AC自动机模板:#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;struct node{ i...

2018-08-30 19:30:25 199

原创 POJ-2513-Colored Sticks

地址:http://poj.org/problem?id=2513思路:可以用map将所有颜色编号并记录每种颜色的个数,由欧拉回路知,每个颜色个数为奇数的个数>2时就不成立,再利用并查集判断是否在同一个集合即可。Code :#include<iostream>#include<map>using namespace std;const int...

2018-08-30 11:57:45 266

原创 字典树模板题

字典树模板:#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;const int MAX_S=400005; //字符串的字符总长度 int Trie[MAX_S][26],sum[MAX_S],num...

2018-08-30 11:51:41 240

原创 CF-AIM Tech Round 5 (rated, Div. 1 + Div. 2)-C. Rectangles

地址:http://codeforces.com/contest/1028/problem/C思路:求n个区域中n-1个区域的交点,那么说明只有一个错误区域要排除掉,那么可以从头开始和从尾开始各自遍历一遍,找其有公共点的区域个数并不断缩小公共区域范围即可,这样总会有一次能够将错误区域排除掉,例如当从头开始遍历将错误区域也算在里面,导致后面的区域没有公共点时,那么从尾开始遍历就会先求后面的区...

2018-08-29 14:43:20 211

原创 Educational Codeforces Round 6-D. Professor GukiZ and Two Arrays

地址:http://codeforces.com/contest/620/problem/D思路:对于交换0可以直接判断,1次可以将b[]保留下标并按值由小到大排序,在二分查找,即a[],b[]的总和差值ss,对b[]查找a[i]-ss/2的值即可,而对于2次交换,可以将b[]的所有组合情况保存在二分即可Code :#include<iostream>#includ...

2018-08-27 15:28:32 172

原创 2018中国大学生程序设计竞赛 - 网络选拔赛- 1009 Tree and Permutation

地址:http://acm.hdu.edu.cn/showproblem.php?pid=6446思路:首先对a[1->n]的全排序分析,可以发现 ai->aj(就是排列中ai与aj相邻,ai在左边,aj在右)的次数为(n-1)的阶乘 (n-1)! (相当于将ai,aj当成一个数,n-1个数的全排列),也就是说任意两点的走的次数有 (n-1)! 次。在对于树分析,对于一条边...

2018-08-26 11:34:28 231

原创 2018中国大学生程序设计竞赛 - 网络选拔赛- 1010 YJJ's Salesman

地址:http://acm.hdu.edu.cn/showproblem.php?pid=6447思路:DP+线段树+离散化,题目要得到价值必须是由左上到右下才行,用dp的话对于 dp[i][j]=max{dp[t1][t2]}+a[i][j] (1<=t1<i,1<=t2<j),这样的话就需要四重循环,肯定超时,但是可以先将所有点按照x由小到大排序,这样就只需要考...

2018-08-26 11:02:49 226

原创 KMP模板题

KMP模板:#include<iostream>using namespace std;const int MAX_S=1000005;int n,m;string str,st;int Next[MAX_S];void GetNext();int KMP();int main(){ ios::sync_with_stdio(false); while(...

2018-08-24 17:36:13 348

原创 2017年湖南省第十三届大学生计算机程序设计竞赛-D Tian Ji's Horse Race Again

地址:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=2000思路:贪心。对于King的马a[n]和Tian的马b[n],交换的k匹马,肯定是取a[n]的最大值和b[n]的最小值交换,那么对于a[],b[]的比较排列是固定的,因此主要怎么求赢得次数,由于a,b都是由小到大排序的,因此可以先求出对于b[i]至少要交换多少匹马才能够使得b[...

2018-08-23 15:30:33 608

原创 2017年湖南省第十三届大学生计算机程序设计竞赛-I Nearest Maintenance Point

地址:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=2005思路:求点到维修点的最短距离,若对于每一个询问都扫一遍那么就太费时,因此可以先将维修点到各点的最短距离求出来,利用Dijkstra算法将所有维修点当做起点处理,而对于各点最短距离的维修点的保存则可以用bitset来存储。Code :#include<iostr...

2018-08-23 15:15:08 437

原创 2017年湖南省第十三届大学生计算机程序设计竞赛-K Football Training Camp

地址:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=2007思路:枚举赢的次数,记录可以赢的次数s3,以及总分数sum,先预处理将sum化为偶数,然后枚举赢的次数,每次加2次使得sum为偶数(因为平一次是加2)Code :#include<iostream>#include<algorithm>#...

2018-08-23 14:57:05 701

原创 2017年湖南省第十三届大学生计算机程序设计竞赛-B Simplified Blackjack

地址:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1998思路:枚举每一种情况,要注意对于输入中的牌点数11,12,13,都是10。。。枚举Alice的要牌数目,对于每次的要牌只要有一次是必赢的,那么就为YES,否则为NOCode:#include<iostream>using namespace std;...

2018-08-23 13:51:31 400

原创 2017年湖南省第十三届大学生计算机程序设计竞赛-A Seating Arrangement

地址:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1997思路:对于 1-n 稍微推一下就可以知道最优排列方式为 中间值h=(n+1)/2与最大值r=n 依次减小交叉排列例如 n=6,则为 3 6 2 5 1 4       n=7则为 4 7 3 6 2 5 1那么其最大差值 t=n/2,则 d>=t就为 -1C...

2018-08-23 12:20:46 484

原创 POJ-3614-Sunscreen

地址:http://poj.org/problem?id=3614思路:一,贪心+set :  对于所有的牛按照 minSPF 由大到小排序然后遍历,对于 牛a[i] 只要找到比a[i].max小的最大的SPF防晒乳即为最优解,因为取大的那么下一个a[i]可能用不到,而对于查找可以用set,再用一个数组记录每瓶防晒乳的个数即可。二,贪心+优先队列: 将所有的牛a[n] 按照minS...

2018-08-22 11:42:47 209

原创 牛客-牛客小白月赛6-G 指纹锁

链接:https://www.nowcoder.com/acm/contest/136/G来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述     HA实验有一套非常严密的安全保障体系,在HA实验基地的大门,有一个指纹锁。    该指纹锁的加密算法会把一个指纹转化为一个...

2018-08-21 10:36:31 300

原创 牛客-牛客小白月赛6-F 发电

链接:https://www.nowcoder.com/acm/contest/136/F来源:牛客网题目描述     HA实验是一个生产、提炼“神力水晶”的秘密军事基地,神力水晶可以让机器的工作效率成倍提升。    HA实验基地有n台发电机,标号为1-n,每台发电机的发电效率为1。    为了满足基地的用电需求,HtBest会在某台发电机上镶嵌一个等级为i的神力水晶,该发电机的发电效...

2018-08-20 22:26:30 230

原创 Codeforces Round #377 (Div. 2)-D. Exams

地址:http://codeforces.com/contest/732/problem/D思路:开始我考虑从头开始遍历,发现这样根本行不通,然后从后考虑发现是可以判断是否可以考完全部课程,而n<=10^5,因此可以二分答案来求解。 在二分答案 h 时,首先将 sp=所有考试所需要的休息天数和,s=考试课程数,p=0,由a[h]到a[1]遍历,当发现有一门课 t 没有考时,sp-=休...

2018-08-20 18:28:23 136

原创 POJ-1328-Radar Installation

地址 :http://poj.org/problem?id=1328思路 :贪心,首先将所有点安装x由小到大排序,再找覆盖当前点的圆的最右圆心,等当前的圆包含不了当前的点就找一个新的圆,一直这样遍历,开始我是直接找当前点的最右圆心,结果一直WA,然后发现这样更新圆心是不对的,例如 遍历时先查询绿点,它的圆心在x1,再遍历到蓝点时发现x1包含不了蓝点,这样的结果就是要2个圆,但是以x2为...

2018-08-20 11:23:54 400

原创 Educational Codeforces Round 49 (Rated for Div. 2)-C. Minimum Value Rectangle

地址:http://codeforces.com/contest/1027/problem/C思路:由 p^2/s = 4*(a+b)*(a+b)/(a*b)= 8+4*(a*a+b*b)/(a*b) ,将 a[]由小到大排序,遍历A[n]数组,找最小的比值,容易知道只当a=b时有最小比值,当a!=b时,设a<b 需要找相邻的a,b即可(因为当a相同,推出 a*a<b*b1,又...

2018-08-19 21:05:04 169

原创 Educational Codeforces Round 49 (Rated for Div. 2)-D. Mouse Hunt

思路:此题为一个图,由样例不难推出对于最小花费应该是每个树的根节点值和环的最小节点值,因此对于树的根节点可以用并查集来求得,而对于环,可以先用拓扑排序将环找出来,在DFS查找环的最小节点值即可Code :#include<iostream>#include<vector>#include<stack>using namespace std;...

2018-08-19 18:41:11 249

原创 Codeforces Round #213 (Div. 2)-D. Free Market

地址:http://codeforces.com/problemset/problem/365/D思路:贪心,思想十分巧妙(只可意会不可言传QAQ),先将所有能够到达的状态先做标记,在从sum=0开始每次取 (sum,sum+d]的最大状态,同时记录搜索次数s,这样到搜索不到时,sum,s即为答案。Code :#include<iostream>#include&l...

2018-08-19 16:55:28 280

原创 牛客-牛客小白月赛6-J 洋灰三角

                                                 J 洋灰三角链接:https://www.nowcoder.com/acm/contest/136/J来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述     洋灰是一...

2018-08-19 11:46:07 310

原创 牛客-牛客小白月赛6-C 桃花

C-桃花链接:https://www.nowcoder.com/acm/contest/136/C来源:牛客网题目描述 桃花一簇开无主,可爱深红映浅红。 ——《题百叶桃花》 桃花长在桃树上,树的...

2018-08-19 11:30:44 609

原创 牛客-牛客练习赛24-B 凤 凰

链接:https://www.nowcoder.com/acm/contest/157/B来源:牛客网 题目描述    凤凰于飞,翙翙其羽,亦集爰止。                                        ——《诗经·卷阿》    传说,凤凰是百鸟之王。有一天,凤凰要召开百鸟大会,百鸟国是一个由n个节点组成的树,每个节点有一只鸟,开会的节点定在1号节点。...

2018-08-17 17:34:00 407

原创 2018"百度之星"程序设计大赛 - 资格赛-1005 序列计数

思路:dp[i][k]表示:以a[i]为右端点时长度为k的上升子序列的个数,转换公式比较容易写出来dp[i][k]=sum{dp[j][k-1]} (a[j]<a[i],j<i)可以看出有 i,j,k三重循环,时间复杂度为 O(n^3) 会TLE,因此看能不能减小一重循环又转换方程看出,dp[i][k]为前i-1个a[j]<a[i]的总和,有a[j]<a[i...

2018-08-17 15:06:13 331

原创 HDU-2852-KiKi's K-Number

思路:e的范围比较小,因此可以用树状数组来记录前e的个数,在利用二分查找来求出比a大的第k个数。Code :#include<iostream>#include<cstring>using namespace std;const int MAX_S=100005;int Q;int d[MAX_S];int C[MAX_S];int Lowb...

2018-08-17 10:23:53 225

原创 51nod-1422 沙拉酱前缀

思路:可以将m个步骤所到的最后位置记录下来,在查询位置t所在的数字时,可以利用二分来查找到t所在的构造步骤k里,若k的类型为1则可以直接输出k.x,否则就将t缩小到前k.li位置中,在重复查找一直到步骤k的类型为1.Code :#include<iostream>#include<algorithm>using namespace std;typedef...

2018-08-16 01:24:29 207

原创 HDU-1892-See you~

思路:本来以为是个纯模板题,结果发现初始化时利用Update(i,j,1)的话会超时,应该是C[i][j]=Lowbit(i)*Lowbit(j);还有就是求区间和时要将对角线的两个点转换为主对角线的两点。Code :#include<iostream>#include<cstring>#include<cmath>using namespa...

2018-08-15 18:16:05 314

原创 HDU-1541-Stars

思路:开始我以为这是一道二维树状数组,结果发现x,y过大会超空间,然后我发现n比较小,于是我就以为把x,y的范围缩小到n就可以了,结果还是超空间,然后看了下别人的博客才发现只要一维就可以了,我真的是脑子秀逗了,就知道套模板。。。由输入可知,x y 是按照 y递增,y相等在x递增输入的,输入的点一定在当前点的下方,因此可以不用考虑y,只需要对前x求和即可,还有注意++x防止x=0;Cod...

2018-08-15 12:09:39 236

原创 HDU-3450-Counting Sequences

思路:设dp[i]:表示第i个元素a[i]对前i-1个的完美子,容易写出转换方程:dp[i]=sum{dp[j]+1} (|a[i]-a[j]|)<=m(m为题中最大差值d))这样的时间复杂度为 O(n^2),会TLE.对于sum{dp[j]+1}我们能够先用d[n]记录a[n],再将d[]由小到大排序,这样的话就可用二分查找找出|a[i]-a[j]|)<=m的j的最左端 l ...

2018-08-15 10:08:11 218

原创 POJ-3366-Making the Grade

思路:数组要变为有序数组,首先考虑正序数组a[n],对于dp[i][j]表示 a[i]变为a[j]时前i个元素有序的最少步数(至于为什么只考虑数组中的元素,我也不大懂。。。)因此 状态转换方程为dp[i][j]=abs(a[i]-a[j])+min{dp[i-1][k]}  (a[j]>=a[k]) 这样需要对 i,j,k遍历,因此时间复杂度为 O(n^3),为TLE,观察转换方...

2018-08-15 02:50:58 293

原创 HDU-3584-Cube

思路:对于改变A[x1,y1,z1]-A[x2,y2,z2]的值,使0变1,1变0,这个这样都加1,然后查询时 %2即可,关键是如何改变其值,可利用三维树状数组,但要改变的是整个区域的值该如何,例如一维树状数组C[n], 改变A[i]-A[j]的值可以先 Update(i,1),在Update(j+1,-1),这样Query(i->j)的值都加了1,而Query(j+1-->n)的...

2018-08-14 21:29:53 199

原创 HDU-2642-Stars

思路:纯粹的二维树状数组模板题。。Code : #include<iostream>#include<cstring>#include<cmath>using namespace std;const int MAX_N=1005;const int MAX_M=1005;int Q;int C[MAX_N][MAX_M];boo...

2018-08-14 02:00:00 129

原创 HDU-2688-Rotate

思路:利用树状数组求出正序的个数,对于R[S E](数据是S<=E的。。)只要对[S E]区间中 F[S]的逆序数ans++,正序数ans--,然后对其翻转即可。Code :#include<iostream>#include<cstring>using namespace std;typedef long long LL;const int ...

2018-08-13 21:39:52 150

原创 HDU-2838-Cow Sorting

思路:此题求逆序数的同时还要求逆序数的总和,对于s的逆序数个数可以用树状数组来求,再求s的逆序数的总和也可以用树状数组来解决Code :#include<iostream>#include<cstring>using namespace std;typedef long long LL;const int MAX_S=100005;int n;i...

2018-08-13 17:27:43 172

原创 51nod-1020 逆序排列

思路:离线dp,dp[n][k]表示n个数k个逆序数的数量,状态转换方程有点思路。对于dp[n][k],最大的一个数n的位置放置在第n-i(0<=i<=n-1)位置上时,n所产生的逆序数为n-(n-i)=i,因此dp[n][k]=sum{dp[n-1][k-i]} (0<=i<=n-1)同理,dp[n][k-1]=sum{dp[n-1][k-1-i}(0&l...

2018-08-13 16:10:18 297

原创 HDU-1556-Color the ball

思路:扫描线||树状数组一,扫描线:题目意思为求每一点的线段覆盖数,因此可以将左端点用 1表示线段开始,右端点用-1表示线段结束,然而右端点也属于线段,因此可以将改为 右端点+1用 -1 表示,在将所有点由小到大排序再遍历一遍,sum记录其值,因此遍历到 i点时sum就为 i点的线段覆盖数。二,树状数组:原理和扫描线类似,将 左端点和 右端点+1 分别用1,-1表示,而第i点的覆盖数即...

2018-08-13 11:23:32 249

原创 51nod-1405 树的距离之和

思路:可以先随便选取节点1作为树的根节点,然后从根节点遍历树,每次保存k节点的子节点总数 d[k].s 以及所有子节点都k节点的距离和 d[k].sum,在遍历过程就可完成保存。然后再从根节点遍历一遍树,求所有点到k节点的距离,就可以转换成求k节点的子节点到k节点的距离s1和k节点的头节点 id 其所在的另一树的节点到k节点的距离s2。而s1=d[k].sum,s2=(头结点所在树的s...

2018-08-13 02:13:02 390

原创 2018 “百度之星”程序设计大赛 - 初赛(B)-1001 degree

思路:对于入度最多的点即边最多的点,首先找到边最多的点,ans=边数。然后利用并查集求出区域块的个数s,对于除自己所在的区域块可以直接连一条边,ans=ans+s-1,然后再连一个点的话就需要消一条边以防止有环,ans=ans+k,还需要判断其不能大于n-1.Code :#include<iostream>#include<algorithm>#inclu...

2018-08-12 23:28:43 278

空空如也

空空如也

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

TA关注的人

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