自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 CF711D 【Directed Roads】

这是一场比赛的T4T4,身为蒟蒻的我当然没有想出来。后来对基环树有了一点了解之后就来肝这道题。首先对于一条边,只有两种情况1.在环上,那么这个环只有全部正向或全部反向才可以成立,而总方案数显然是2m,其中mm是环上的边数,所以方案数就是2m-22.不在环上,那么这种边就可以随意取,也就是2w−∑m,也就是所有的边数减去在环上的边。先用拓扑排序找出所有的...

2019-10-05 21:52:00 167

转载 我再也不相信正解了……

RT,正解居然是暴搜,我用的是Hamilton,结果炸了CodeMine#include<bits/stdc++.h>#pragma GCC optimize("O2")#define fr(i,a,b) for(int i=a;i<=b;++i)#define rf(i,a,b) for(int i=a;i>=b;--i)#def...

2019-10-05 21:03:00 103

转载 悬线法

Solution1Solution 2转载于:https://www.cnblogs.com/coder-cjh/p/11623373.html

2019-10-04 21:29:00 90

转载 防线 Defence

这一题写的时候也是懵逼的,想到了大概思路首先的操作肯定是处理出以ii为结尾的最长连续上升序列那么接下来最朴素的算法可以达到O(N^2)有没有更快的做法?考虑我们枚举的是前ii项,那么有些很明显无用的东西被重复枚举了如果a[i]>a[j]并且g[i]<=g[j],那么选i肯定没有选j优,所以考虑用一个set来维护这个东西,注意细节...

2019-10-04 19:51:00 95

转载 奶牛浴场

这道题我用了扫描法,悬线法还没有填坑首先想到尽量减少枚举量,也就是尽量让每个矩形都是有意义的,那么只有障碍点边缘有价值,所以只需要从左到右扫描一遍,得到的全部都是有意义的。那么这种方法是否还有遗漏呢?答案是肯定的因为我们从左到右搜,肯定是以左边为准线,那么如果一直延伸到右边,那么如果是右边延伸到左边就会遗漏,同理,如果与左边界和右边界重合的矩形也会遗漏。所以加入两个特...

2019-10-04 19:29:00 98

转载 环状两段最大子段和

Step 1首先考虑链状的情况,也就是链状++++++++-------------++++++++P.S:++表示使用的子段可以考虑用中途相遇法,用g[i]表示以ii为结尾分界线,之前最大子段和,以h[i]表示以ii为结尾分界线,之后最大子段和那么答案也就是g[i]+h[i+1](不相交,所以要+1)Step 2如果是环状的...

2019-10-04 17:42:00 284

转载 三步必杀

SolutionStep 1考试的时候SB想到了异或……首先复杂度肯定是线性,否则无法满足。Step 2区间操作,考虑转为差分,变成单点操作。那么如果s=e,就是普通的差分如果不是,也就是差分数组每次加上同一个数,考虑维护差分数组的差分数组。每次加上公差,最后统计。修改O(1),统计O(N),可以承受Step 3#include...

2019-10-04 11:44:00 109

转载 加工生产调度

Johnson排序思路使用邻项交换法证明,以min(a1,a2)<min(b1,b2)为关键字排序。注意细节#include<bits/stdc++.h>using namespace std;int n,aa,ab,ans[1005];struct node{int a,b,ind;}x[1005];bool cmp(node a,no...

2019-10-02 11:49:00 151

转载 种树

似乎又想到3紫1黑其实是两道不相关的题目,区间选点问题,给了我们O(N2)的复杂度,那就很好确定了,我们可以考虑尽量让一棵树发挥最大价值,放在尾部,直到满足要求为止。具体实现用右端点递增排序将不够的树补在尾部直到补满Code#include<bits/stdc++.h>using namespace std;int b[3000...

2019-10-02 11:32:00 62

转载 UVA11134 传说中的车 Fabled Rooks

首先,根据数据范围,可以得到这是一题O(N2)考虑贪心发现行和列是不相关的,于是可以把他们分成两个一维区间问题,也就是在线段中选出点使得每个线段中都有一个点,求出方案。先考虑尽量不对后面造成影响,也就是留后路,所以前面要尽量选靠前的,按照右端点排序,分别处理。最后记得按原序号输出。#include<bits/stdc++.h>using names...

2019-10-02 11:17:00 103

转载 UVA 11054 Gergovia的酒交易 Wine trading in Gergovia

一道思维题,主要用到的方法是思路转化。首先考虑第一个村庄,首先他本身一定会用|a[1]|的劳动力a[1]>0 那么2村庄一定要花a[1]的劳动力来运输,也就是需要a[1]+a[2]的劳动力a[1]<0 那么2村庄就已经有-a[1]瓶酒,就可以不用去买了,也就是a[2]-(-a[1])=a[1]+a[2]综上,我们通过扫描法来记录前几个村庄带给这个村庄的...

2019-10-02 11:02:00 80

转载 Color a tree

Solution众所周知这是一道dl贪心Step 1如果没有先后染色的顺序让你去染色,你肯定会先把最大的节点先染了,但是如果有了限制,类似的,就会把子节点中最大的点先染了,所以两个操作会是连续的。所以假设待染色的点分别为x,y,z,其中x,y已知是连续染色,则只有两种染法1.x+2y+3z1.x+2y+3z先染x,y,再染z2.z+2x+3y2.z...

2019-09-24 21:50:00 176

转载 雷达安装

Solution这一道题又是一个典型的区间问题,可以抽象理解为选出尽量少的点,使每个区间至少有一个点。可以通过贪心的方法来做,有两种方法,很明显这个点要放在区间的末尾,能够更好地共享。1.1.通过排序左端点将左端点从小到大排,能安排的尽量在原有的基础上往前挪,因为不会影响之前得到的值。具体实现sort(a+1,a+n+1,cmp);int num=1;...

2019-09-24 21:04:00 209

转载 区间覆盖

Solution通过贪心维护连续区间的左端点和右端点,利用左端点单调递增可以减少冗余操作,等到全部加上了之后再统计Code#include<bits/stdc++.h>using namespace std;int n;long long ans;struct node{long long x,y;}a[100005];//结构体bo...

2019-09-24 20:20:00 56

转载 摊位预订stall reservation

一道典型的贪心抽象一下,其实就是区间中,不相交区间可以组成一条链,求链的最少数量Solution证明其实很简单,你只要找到一个能用的丢进去就好了,因为不管丢到哪一个栅栏,最后都还是要算最后时间的,所以其实没有差别#include<bits/stdc++.h>using namespace std;int num=1,n;struct no...

2019-09-22 20:59:00 176

转载 Sunscreen

Solution先按照minSPFminSPF递减排序,之后找到可用的最大的防晒霜,进行安排。证明设SPF[X]<SPF[Y]SPF[X]<SPF[Y],如果当前奶牛都可以用,那么后面的奶牛只能有三种情况1.X和Y都可以用2.X可以用,Y不能用3.X,Y都不能用那么可以选Y的影响比选X的小,同时带来的效...

2019-09-22 20:26:00 83

转载 Tallest cow(差分数组)

首先翻译一下题面,其实就是给定两个位置a和b,中间的数都要比a和b小,那么我们可以想到用一个差分数组,a+1到b-1都-1,就可以更新身高,最后再一起输出#include<bits/stdc++.h>using namespace std;int n,k,h,r,a,b;int d[10005],c[10005];map<pair<int,...

2019-09-22 19:53:00 239

转载 UVA529 Addition Chains

做题5分钟,调题一小时总结错误:1.剪枝采用IDA*优化:估价函数就是每次最多增加两倍因为序列单调递增,所以如果前面两数相加小于当前值,再往前找也没有意义因为要尽量逼近n,所以要从后往前枚举2.去重数组不好处理,会错,所以不能采用Code#include<bits/stdc++.h>#pragma GCC optimize("O...

2019-09-22 11:54:00 96

转载 Sudoku(16*16)

Solution一道神仙暴力剪枝题,思路是在9*9的数独之上,再多添加3个剪枝1.判断每个空格中,如果一个字母都填不了就返回,如果只能填一个,就填上并继续搜索2.对于每个字母,在每行\列\16宫格中判断能填的位置,如果没有就返回,如果只有一个就填上,并继续搜索3.在上述剪枝完成后,再用位运算优化,取出最少的一个空格,并用lowbit运算取出能填的数Attention!...

2019-09-15 21:00:00 205

转载 Bandwidth(爆搜)

这是一道暴力都能过的题,重点其实在于理解题意,输入过程也有一点繁琐。1.题意先给定一个无向图,要重新安排结点的顺序,使得相邻的节点在排列中的最大距离最小2.Solution明显的爆搜,难就难在如何建模,其实只要把出现过的字符放到一个数组记录起来,然后搜索的时候依次安排每个节点的字母分块讲解:(1)输入//首先我们可以先把":"前面的字符提出来作为u,再在:...

2019-09-13 17:49:00 116

转载 生日蛋糕

这是一道绝妙的搜索剪枝题#include<bits/stdc++.h>using namespace std;int n,m,anss=1e9;int h[20],r[20];void dfs(int step,int v,int s){ if(v+step*step*step>n)return;//粗略估计的最小体积 if(...

2019-09-08 21:00:00 79

转载 信息传递(带权并查集)

这一道题就是典型的带权并查集,首先每个点出度都是一,要回到本身的最小距离也就是环的最小长度,自然而然想到用并查集来维护。再在更新之后才get就剁手#include<bits/stdc++.h>using namespace std;int fa[200005],n,t,w[200005],mn=0x3f3f3f3f;int get(int k){...

2019-09-08 20:17:00 110

转载 小木棍

这是一道很好的剪枝题目#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;int n,x,t,maxx,len,cnt,sum;bool v[105];int a[105];...

2019-09-07 22:43:00 76

转载 括号序列

坑点在于会有空串,需要用getline#include<bits/stdc++.h>using namespace std;string s;int f[105][105];bool match(char a,char b){return ((a=='('&&b==')')||(a=='['&&b==']'));}v...

2019-08-29 16:37:00 69

转载 单向TSP

这一道题很明显的DP思路,可以直接上线性DP#include<bits/stdc++.h>using namespace std;int m,n,a[15][105],f[15][105],ans,first,nxt[15][105];int main(){ while(~scanf("%d %d",&m,&n)){ ...

2019-08-28 10:43:00 76

转载 Black Box

目前还在评测,因为UVA评测姬它死了,但是udebug是可过的Step 1首先我们可以想到全部sort一遍,但是这样效率太低了,我们可以想到另一种方法,因为前I个数是上一次询问就已经保存下来的,我们只要找到这第i+1个数就好了Step 2确定数据结构:对顶堆第一个用来保存前i个数,第二个的堆顶就是第i+1个数Step 3:#include<bit...

2019-08-27 22:03:00 249

转载 震惊!!!某初中生竟30min一蓝两紫一黑!!!

我才不会说我是标题党题目地址种树1种树2数据备份黑题???自己找吧Solution都是一个东西啦,其实思路差不多,注意几个点注意数据类型注意数据范围注意输入格式多测不清空,爆零两行泪题目要求(最大,最小)正负接下来就是愉快的代码时间 1 #include<bits/stdc++.h> 2 using n...

2019-08-27 12:35:00 347

转载 荷马史诗

Solution看到这道题,可以想到和合并果子类似,之后拓展成k叉合并果子就可以了,注意最下面一层不满时要补满Code#include<bits/stdc++.h>using namespace std;#define max(a,b) (a>b?a:b)typedef long long LL; struct node{ LL...

2019-08-26 22:13:00 75

转载 SUFEQPRE - Suffix Equal Prefix

Myblog题目简述给你一个字符串SS,判断有多少个前缀也是后缀输入格式第一行T,有T组数据 第2~T+1行,T个字符串输出格式Case (Number): ans数据范围1<=|S|<=10^6SolutionStep\ 1:HashStep1:Hash看到这道题很容易想到hash操作,也就是暴力解法,算一算时间是O(T...

2019-08-26 10:06:00 98

转载 UVA劲歌金曲

Solution很容易想到这是一个01背包,因为还要留时间,就先把时间的1扣掉,之后再加上劲歌金曲的678秒,其它的细节注意一下就好了。Code#include<bits/stdc++.h>using namespace std;int n,t,w[100005],a[100005],f[100005];int main(){ freop...

2019-08-25 23:05:00 146

空空如也

空空如也

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

TA关注的人

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