08 2016 档案
摘要:思路:树链剖分+线段树纯自己瞎想的 想到哪儿就写哪儿,,, 所以调了一下午+一晚上…..【尴尬】#include #include #include #define N 22222using namespace std;char ch[11];int cnt=0,rec[N...
阅读全文
摘要:思路: 链剖裸题……//By SiriusRen#include #include #include using namespace std;#define N 22222char ch[11];int n,cases,root,tree[N*4],xx,yy,ans;int to...
阅读全文
摘要:思路:呃呃网上那么多题解写得都不错…..就是高精 巨坑。。。这里展出的是任氏高精(纯自己yy滴)//By SiriusRen#include #include #include using namespace std;int n,temp[5555],len,A[5555],an...
阅读全文
摘要:思路: 把所有“>”变成“≥” 把所有“#include #include #include #define N 111using namespace std;char a[3],inq[N];int n,vis[N],xx,yy,zz,m,dis[N],cnt[N];int fi...
阅读全文
摘要:题意: 思路:1.二分+线段树(但是会TLE 本地测没有任何问题,但是POJ上就是会挂……) 2.二分+并查集 我搞了一下午+一晚上才搞出来…………..(多半时间是在查错)首先 如果我们想知道这头奶牛之前的奶牛回答的是不是错的怎么办呢?把回答的A从大到小排个序。这里有几种错的方...
阅读全文
摘要:题意: 思路: 线段树 (一棵就够啦 不像树状数组,还得用两棵)先对v从小到大排序。每回插入的时候当前的v是最大的,只需要统计它到各个坐标的距离就好了。里面存两个东西: 这个坐标左边的坐标个数和这个坐标左边的坐标之和。 ans_num表示这个坐标左边的坐标个数ans_num表...
阅读全文
摘要:一堆化不等式,,,,,, 懒得写了。。。 请看mars_ch的blog…..戳戳戳戳戳还是她给我找的错……….//By SiriusRen#include #include #include #include using namespace std;int first[25],ne...
阅读全文
摘要:思路: i–>i+1连一条边权为0的边 i–>i-1连一条边权为-1的边 start-1 —>end 连一条边权为w的边求0—>n的最长路即可//By SiriusRen #include #include #include #include using namespace ...
阅读全文
摘要:思路:建完了图就是模板水题了 …..但是建图很坑。首先要把出发点向地铁站&终点 连一条边 地铁站之间要连无向边 地铁站向终点连一条边以上的边权要*0.006两个地铁站之间要连无向边 边权*0.0015//By SiriusRen#include #include #incl...
阅读全文
摘要:POJ少有的中文题 (很久之前就想写来着,但是原来不会啊…..) 思路: 首先我们可以新建一个点,从这个点向每个物品连一条权值为这个物品价值的边 (这样就把点权转化成了边权对吧……) 我们已经知道了一个物品的替代品是啥,那么就可以从每个替代品向这个物品连一条边权为替代品价值的边...
阅读全文
摘要:思路: 裸的最大生成树 不解释//By SiriusRen#include #include using namespace std;int n,m,ans=0,cnt=0,f[100050];struct Node{int x,y,w;}node[20050];int find...
阅读全文
摘要:一个坑: 有组数据如下: 1 1坑很深……//By SiriusRen#include #define N 200000using namespace std;int n,mindiv[200050],prime[100000],top=0,xx,rec;int main(){ ...
阅读全文
摘要:题意: 思路: 这道题坑也不少。。 你准备好脑洞了么?首先 要认真审题 题目中有说:“没有两头牛的吃草位置是相邻的” 这句话让我们省了很多的事儿 (Discuss里有的大神就入了这个坑了)然后呢 自然想到了中位数 (不要问我怎么想到的)但是如果n为偶数怎么办呢 ...
阅读全文
摘要:题意: 思路: 这题巨坑!!! 这题巨坑!!! 这题巨坑!!! 这题巨坑!!! 这题巨坑!!!(而且没有题解…….5555555……) 只能照着自己想的写了……先求出来凸包 求凸包的方法呢:先找出来左下角的点 然后按照极角排序就OK了。 我用了两边sort sort(point+...
阅读全文
摘要:题意: 思路: 裸的暴搜 …….但是要注意如果你不用所有的按键就能输出最优解的话一定要把所有的字母都安排到一个位置…. 我的一群PE就是这么来的……为什么写的人这么少…… // by SiriusRen#include #include #include using nam...
阅读全文
摘要:题意: 思路: 单调栈// by SiriusRen#include #include using namespace std;stacks;int n,w,ans=0,xx,yy;int main(){ scanf("%d%d",&n,&w); for(int i...
阅读全文
摘要:思路: Tarjan缩点+一些特判//By SiriusRen#include #include #include #include #include using namespace std;stackstk;int n,m,map[666][666],xx[]={1,-1,0,0...
阅读全文
摘要:题意: 给你一个邻接矩阵(n#include #include #define int long longusing namespace std;int n,map[66][66],LCM=1;struct node{int now,reached,weight;}s;queueq...
阅读全文
摘要:按照题意模拟就好…注意“X”只能出现在最后一位。。。// by SiriusRen#include using namespace std;char s[15],mark;int main(){ scanf("%s",s+1); int temp=0; for(i...
阅读全文
摘要:题意: n头牛,p长度的道路,问至多包括c头牛的道路最长有多长。思路: 按照题意暴力就好…… 注意边界。// by SiriusRen#include #include using namespace std;int n,p,c,a[1005],vis[1005],ans=0,i,...
阅读全文
摘要:题目给的输入是大坑,算法倒是很简单…… 输入的是绳子的编号wire ID,而不是上(或下)挂钩对应下(或上)挂钩的编号。 所以要转换编号,转换成挂钩的顺序,然后再求逆序数。知道了这个以后直接乱搞就可以0msAC(这题可以用冒泡排序过的……) (n#include #include...
阅读全文
摘要:思路:这题要求最长下降子序列的长度和个数,我们可以增加 数组maxlen[size](记录当前第1个点到第i个点之间的最长下降序列长度) 和maxnum[size](记录1~i之间的最长下降序列个数 ) ,首先对于最长下降序列属于DP基础题,只要对每一个a[i]求出符合要求(a[i...
阅读全文
摘要:思路: f[j]表示当ts的和为j的时候tf的最大值。 这时候要分情况讨论: (我把状态平移了101000) 若ts[i]>=0倒序循环 否则正序 (防止ts被用了多次)f[101000]=0;for(int i=1;i=0) for(int j=202000-ts...
阅读全文
摘要:思路: 坑爹模拟毁我一生 给两组数据: 输入: YOURE TRAVELING THROUGH ANOTHER DIMENSION A DIMENSION NOT OF SIGHT.输出: YR TVLNG H DMS F.注意“.”前面没有空格。。。 别问我怎么知道的……(。・・...
阅读全文
摘要:思路: 暴力枚举好了。。每回判断一下……用long long会超时 但是10^20会爆int。。。 不过仔细想一想 超过10^9的数肯定拼不回0啊…… 猥琐用int AC了(当然可以打表 )// by SiriusRen#include #include #include u...
阅读全文
摘要:题意: 有n个家务,第i个家务需要一定时间来完成,并且第i个任务必须在它 “前面的” 某些任务完成之后才能开始。给你任务信息,问你最短需要多少时间来完成任务。输入: 第一行n个家务 第2~n+1行:每行第一个数字:完成这件家务所用的时间。 第二个数字:需要前面几个家务才能做这件。 ...
阅读全文
摘要:题意:给你n个木棍(n#include #include using namespace std;int n,a[50],sum=0;bool f[805][805];double ans=0;int main(){ scanf("%d",&n); for(int i=...
阅读全文
摘要:思路:呃呃 暴搜+打表 暴搜的程序::稳稳的TLE+MLE (但是我们可以用来打表) 然后我们就可以打表过了 hiahiahia可以证明最小的那个数不会超过200(怎么证明的我也不知道),然后就直接判重就好了 打表: 打表的程序:// by SiriusRen#include ...
阅读全文
摘要:思路: 肯定是要枚举断点的。。就看枚举完断点以后怎么处理了…… 1.用类似并查集的思想… f[x]=max(f[x],y)表示x和y相连(一定要注意取max,,,血的教训) 复杂度O(np) 2.猥琐思路 每回枚举完断点以后sort一遍 用左右指针扫一遍就OK.. 需要高超的卡...
阅读全文
摘要:思路:SPFA判负环 数组不要开太小……(后面附一组测试数组)// by SiriusRen#include #include #include using namespace std;#define N 13555int n,cases,m,W,xx,yy,zz,tot,firs...
阅读全文
摘要:思路:正向建边,一遍Dijkstra,反向建边,再一遍Dijkstra。ans加在一起输出最大值。 (SPFA也行……)// by SiriusRen#include #include #include #include using namespace std;#define N ...
阅读全文
摘要:水题,但是WA了一屏………swap的时候忘了把读入的数字也swap了………………………..【尴尬】// by SiriusRen#include #include #include using namespace std;char jya,jyb;double T,D,H,xx,...
阅读全文
摘要:这是很久很久以前做的一道题,可惜当时WA了一页以后放弃了。 今天我又重新捡了起来。(哈哈1A了) 题意: 没有上司的舞会+判重思路: hash一下+树形DP 题目中给的人名hash到数字,再进行运算。 树形DP f[x][0]+=max(f[x.son][0],f[...
阅读全文
摘要:思路: 先统计在第i个位置当前数字已经出现的次数。 维护两个数组,一个是当前位置的数字最后一次出现的位置,另一个是当前位置的数字第一次出现的位置 查找的时候分为两种情况:没有和边界相交(意会意会)的数字中的最大值,注意右边界一定要不小于左边边界。统计一下和边界相交的数字出现的次数…...
阅读全文
摘要:思路: 1.01背包 先找到所有奶牛身高和与B的差。 然后做一次01背包即可 01背包的容积和价格就是奶牛们身高。 最后差值一减输出结果就大功告成啦! 2. 搜索 这思路很明了吧。。。 搜索的确可以过… 3. 模拟! 0到1#include using namespace st...
阅读全文
摘要:题意:牛有强弱,给出一些牛的强弱的胜负关系,问可以确定几头牛的排名。 思路: Floyd传递闭包 // by SiriusRen#include #include using namespace std;#define f(x) for(int x=1;xmap[105];i...
阅读全文
摘要:题意: 思路: 二分图匹配。。。// by SiriusRen#include #include #include using namespace std;#define N 1111int n,m,k,xx[]={1,-1,0,0},yy[]={0,0,1,-1},jyx,jy...
阅读全文
摘要:思路:最大匹配 也是很裸的一道题….// by SiriusRen#include #include #include using namespace std;#define N 500int n,tot=0,first[N],v[N*N],next[N*N],jy,xx,yy,...
阅读全文
摘要:思路:最大匹配 (很裸)// by SiriusRen#include #include #include using namespace std;#define N 205int n,tot=0,first[N],v[N*N],next[N*N],m,s,V,vis[N],fa...
阅读全文
摘要:(今天才学会Prim 尴尬……)这题好久之前(四个月之前)就写过。。 当时WA了……抄得题解现在终于搞对了。// by SiriusRen#include #include #include #define N 1005using namespace std;int n,now;...
阅读全文
摘要:双向DP+记录路径。// by SiriusRen#include #include #include using namespace std;stacks;int n,m,RECL,RECR,minn=0x3fffffff,a[555][555],f[555][555],recl...
阅读全文
摘要:一道建图题……// by SiriusRen#include #include using namespace std;#define N 1666int h,w,v[N],next[N],first[N],tot,cnt,cases,map[55][55],fa[N],ans;c...
阅读全文
摘要:(为什么最大独立集的背景都是严打搞对象的( _ _)ノ|壁) 思路:匈牙利算法 没什么可说的……// by SiriusRen#include #include using namespace std;int cases,n,tot,ans,first[555],next[5555...
阅读全文
摘要:这题 不算重复的数。。 就变成水题了。 思路: 1.打表 2.DP 打表的:// by SiriusRen#include using namespace std;int a[6]={0,10,670,55252,4816030,432457640},n;int main(){...
阅读全文
摘要:思路: 差分约束,难在建图。(我是不会告诉你我刚学会SPFA的。。。)把每个区间的ai–>bi连一条长度为ci的边。 k–>k+1连一条长度为0的边。 k+1–>k连一条长度为-1的边。 求最长路即可。// by SiriusRen#include #include #includ...
阅读全文
摘要:题意大坑,建议先看Discuss…… 否则代码写得就像以下的一团糟。。。。其实并不难,拓扑排序+乱搞就可以AC。// by SiriusRen#include #include #include using namespace std;char jy[4],vis[26],in[2...
阅读全文
摘要:概率DP。 看起来不难? 然而挂了好几次。。。 题目:有2^n个队,相邻的两两打淘汰赛,,求最后哪个队夺冠的概率最大 http://poj.org/problem?id=3071 dp[i][j]表示第i轮的时候,第j去支队伍赢的概率。 那么dp[i][j]的前提就是i-1轮的时...
阅读全文

浙公网安备 33010602011771号