自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 省赛被虐记

今年作为老队员第一次参加比赛,因为玉伟下部队了所以临时找了Final爷昊神替了玉伟的空位,压力瞬间大增,生怕一不小心坑了昊神。 果然,第一天的热身赛就坑了,一道SB宽搜我WA了三发才A,不过因为昊神足够虎所以还是没有被踩。 第二天一早我们吃完早餐就去愉快的参加比赛了~查到座位之后我们还把手机上交了。。。然后就开始愉快的做题了。发下题之后我就看前四道,发现B题是中文题,就果断去看B了,结果果然是S

2015-08-30 23:02:31 717

原创 BZOJ 3669 魔法森林 LCT

链接:【BZOJ 3669】 题意:一个无向图,每条边都有A,B两种权值,找出一条最优路径使得1~n路径上的两个权值的瓶颈之和最小。 思路:对于每条边按照A为关键字从小到大排序,枚举A的瓶颈加入边,若边的两点之间联通,则找出B最大的边并比较,若大于当前B,则将该边删去,否则不加入这条边。 代码:#include<cstdio>#include<iostream>#include<algor

2015-08-21 17:39:03 935

原创 HDU 5333 Undirected Graph 离线 LCT维护最大生成树+树状数组

传送门【HDU 5333】 题意:一个无向图,m条边,Q个询问,每个询问查询若只保留图中的连接的两个点都在L,R之间的边,图包含多少个联通块。 思路:对询问以及边按照上届R为第一关键字从小到大排序,按照从小到大加边,用LCT维护边权为L的最大生成树,对于每个询问,查询L在[L,R]区间的边的个数,联通块的数量就是n-边数。 代码:#include <cstdio>#include <iost

2015-08-21 17:19:03 1343

原创 HDU 5398 GCD TREE LCT维护贪心

HDU 5398 GCD TREE LCT维护贪心题目链接:传送门题意:找出一颗1~n的最大生成树,边的权值为连接节点的GCD。思路:贪心的考虑每条边的权值一定为较小的点的值,将1~n从大到小加入到生成树中,向其因子连边,用LCT维护一下最大生成树就好了。#include <cstdio>#include <iostream>#include <cstring>#include <algori

2015-08-21 13:10:53 1249 1

原创 BZOJ 1500 维修数列 Splay

SPLAY 模板题 代码:#include #include #include #include #define splay_pool NILusing namespace std;const int max_size=500010;const int INF=(1ll<<31)-2;struct Node { int val,size; Node *lch

2015-08-21 13:01:53 821

原创 HDU 5338 ZZX and Permutations 线段树

题目链接:HDU 5338 题意:给一个去掉括号的置换半成品,问如何加括号可以使原序列字典序最大。 思路: 思路很明确 1、肯定是贪心的考虑使靠前位置的尽量大。 2、那么就找从当前位置到之前的右括号之间最大的值与后继进行比较。 括号直接用SET维护就可以了,最大值用线段树维护。比赛的时候SB用线段树维护的右括号位置,幸亏范围小。 代码:#include <cstdio>

2015-08-01 14:31:48 850

原创 HDU 5324 Boring Class 树套树 或 CDQ分治

HDU 5324 Boring Class 树套树 或 CDQ分治题目链接:HDU 5324 题意: 给定两个序列,求一个最长的公共子序列使得第一个子序列递减,第二个递增。 思路: 将L数组的下标排序并从小到大插入,维护一个满足R的最大DP值的位置。二维。如果内存够大可以,线段树套线段树,可以用线段树套SPLAY。 代码:#include <cstdio>#include <cstrin

2015-08-01 14:18:11 1146

原创 HDU 5239 DOOM 线段树

HDU 5239 DOOM 线段树标签(空格分隔): 线段树题目链接:hdu5239 题意:给定长度为N的序列,有Q个操作,每次操作询问区间[l,r]的和,并将区间的值平方,每次输出所有之前查询答案的和对2^63-2^31取模。 思路:找规律发现任何数平方30次之后模mod都不再变化。于是用线段树维护区间内平方次数最少的元素为多少,弱最小的大于30则不进行操作,直接返回区间和,反之则继续递归直至

2015-07-27 12:43:39 1000

原创 实现两个long long 相乘取模的汇编代码

long long multi(long long tp1,long long tp2){ long long ret=0; __asm__("movq %1,%%rax\n imulq %2\n idivq %3\n":"=d"(sum[i]):"m"(tp1),"m"(tp2),"m"(mod):"%rax"); return ret;}

2015-07-27 12:30:15 1871

原创 HDU 5296 Annoying Problem 树链剖分 LCA 倍增法

HDU 5296 Annoying Problem题目链接:hdu 5296题意:在一棵给定的具有边权的树,一个节点的集合S(初始为空),给定Q个操作,每个操作增加或删除S中的一个点,每个操作之后输出使集合S中所有点联通的最小子树的边权和。思路:最小子树上的节点的充要条件: 节点为(S集合中所有点的LCA)的子节点; 节点有一个子孙为S集合中的点。 那么我们给每个节点都开一个标记

2015-07-24 16:11:15 737

原创 hdu 5297 Y sequence 容斥+迭代

hdu 5297 Y sequence 容斥+迭代题目链接:hdu 5297 题意:定义数列A为不能被表示成pow(a,b)(a>0,2<=b<=r)的正整数的升序排列。求A(n)。(0<n<2*1e18,2<=r<=62。) 思路: 思路主要分为两个部分: 首先,先求A(n)的反函数,最基本的思想是把n开次方直接取整去掉,但是由于会产生重排,所以要用容斥去搞,我的做法是先利用莫比乌斯反

2015-07-22 20:52:48 1199

原创 hdu 5255 魔法因子 打表 或者 乱搞 百度之星初赛第二场1004

题目链接:点击打开链接题意:能满足 abcde*x=ebcda的数x称为魔法因子,给定一个数,求它是不是魔法因子,若是把符合条件的数输出。思路:枚举头尾和位数,头尾固定中间的数字也就固定,可是我不会,晚上或者什么时候有空再写;但是我会打表吖~ 枚举10~1e10,判断是否存在魔法因子。cpp:打表版#include #include #include #include

2015-06-01 13:16:45 1363

原创 uvalive 6886 Flowery Trails fft

题目链接:点击打开链接题意:给定包含n个元素的集合A和包含m个元素的集合b,问集合B中有多少元素能通过从集合A中任选两个(可以重复)数字加和的得到。思路:fft模版题cpp:#include #include #include #include #include using namespace std;const int N = 10000;const int M =

2015-05-31 12:17:05 796

原创 HDU 5242 GAME 2015上海邀请赛G题

题目链接:hdu 5242 题意:给定一颗以1号节点为根节点的有向树,每个节点有一个权值,问从1号节点出发k次,能到达的所有节点的和的最大值。 思路:贪心的把树的链按照权值和从大到小剖分成若干条链(过程可以根据上交书上的熟练剖分模版做细小改动),然后根据每条链的权值排序取最大的k个就是答案。 代码:#include <cstdio>#include <cmath>#include <ios

2015-05-27 17:13:17 1778

原创 lightoj 概率dp小结

**马上要去上海邀请赛啦,为了不给老万和聪神拖后腿,我就翘课刷了点题。不过聪神让我学学数学,然后我昨天和今天刷了一天的概率dp,好像偏题了。。。**题目:kuangbin带你飞 概率与期望(貌似是lightoj上的) 地址:点击打开链接 A 题: 大意:一个人不小心掉进了一个迷宫里,然后有n个门,分为两类,第一类进去之后就可以花费x_i的时间出去,数量为a;第二类进去之后花费x_i的时间回到

2015-05-19 14:07:13 924

原创 SPOJ SUBST1 POJ 2406 POJ REPEATS 后缀数组小结

//聪神说:做完了题目记得总结,方便以后复习。SPOJ SUBST1 题目链接:点击打开链接题意:给一个字符串,求不同子串个数。思路:假设所有子串都不同,答案为len*(len+1)/2;然而不是这样... 下面我们就找出重复的子串:首先先将后缀排序,对于后缀i能生成len-sa[i]个子串,这其中有height[i]个子串与第i-1个后缀生成的子串重复了;所以答案为 le

2015-05-07 20:31:40 728

原创 求最小割边集

改f上一篇文章的时候顺便学会了求最小割边集的方法,虽然用到上一题上是错的,但是把这个方法也先总结一下;先跑一遍最大流,在残余流量里从s开始dfs凡事能从s开始能流到的点标记为1,其他的标记为0,起点为1终点为0的边集是一组最小割边集。cpp:#include #include #include #include #include #include #incl

2015-05-06 17:54:30 1727 2

原创 jag2014autumn F Reverse a Road II 网络流

题目链接:点击打开链接题意:给定一个图包含n个点,m条容量为1的有向边,问只翻转一条边能使s到t的最大流增大到多少?有多少种方法?思路:先跑一遍最大流,在残余流量里把点分为为两个集合,第一个集合包含所有从起点能到达的点,第二个集合包含所有能到达终点的点,那么答案就是起点在第二个集合终点在第一个集合的边的条数(两个集合都不包含的点忽略)。cpp代码:#include #includ

2015-05-06 17:27:09 709

原创 HDU 4300 EKMP

题目:点击打开链接题意:裸的EKMP #include #include #include#include#include#include#includeusing namespace std;#define MAXN 1000010int next[MAXN],extend[MAXN];void pre_ekmp(char x[],int m){ ne

2014-12-29 23:41:08 614

原创 hdu 5077 NAND(打表)2014 Asia regional 鞍山站 H题

题目链接:点击打开链接题意:就是一个按位运算的一个函数,问最少经过多少步运算可以得到给定数;思路:不是我投机取巧想打表,是特么这题只能打表。。。打表思想用可以得到的数的集合表示状态bfs;最后有一个需要11步的需要打将近1h,除去这一个十分钟就够了。cpp:#include #include #include #include #include using names

2014-10-22 21:54:53 1621

原创 uvalive 6588

题目链接:点击打开链接ti yi

2014-10-06 18:55:41 675

转载 ACM之并查集

并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程 http://acm.hdu.edu.cn/showproblem.php?pid=1232首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些

2014-09-28 15:50:19 530

转载 ACM中使用JAVA v2.1

ACM中使用JAVA v2.1                                                                     严明超                                                  (Blog:mingchaoyan.blogbus.com                      

2014-09-28 15:14:16 620

转载 java 的高效读写

#include #include #include using namespace std;struct Bignb{ long long high,low; void print(int& cas) { if(high<=0) { printf("Case #%d: %I64d\n",++cas,low);

2014-09-28 15:08:54 953

原创 hdu 5047 Sawtooth 组合数学 高精度

题目链接:import java.util.*;import java.io.*;import java.math.*;public class test { public static void main(String[] args) throws IOException{ BigInteger zero=BigInteger.valueOf(0

2014-09-27 20:17:04 1573

原创 HDU 5033 Building 单调栈 2014网络赛北京站B题

题目:点击打开链接

2014-09-25 13:40:32 501

原创 HDU 5037 FROG 贪心 2014北京网络赛F

题目链接;点击打开链接题意:有一条小河长为M的小河,可以看作一维轴,小河里存在N个石头,有一个每次能跳L米的小青蛙,随意添加石头保证青蛙能从头跳到尾的,问青蛙使用最优策略跳到对岸最多需要多少次。思路:不妨假设青蛙每个石头都要经过一次,用step表示青蛙上一次跳的步长,每跳一次对目前点到下一点的距离和step的和与L做比较,如果小与,证明青蛙可以一次跳到这,更新step和青蛙位置,cnt保持

2014-09-21 22:12:02 1879

原创 hdu 5017 ellipsoid 模拟退火

题目链接:#include #include #include using namespace std;#define INF 1e10const double eps=1e-5;int dx[8]={0,1,0,-1,1,1,-1,-1},dy[8]={1,0,-1,0,-1,1,-1,1};double a,b,c,d,e,f;double get_dis(doub

2014-09-16 15:41:22 978

原创 hdu 5014 number sequence 贪心

代码:#include #include #include #include using namespace std;int get_lentgh(const int& n){ for(int i=0;i<n;i++) { if((n>>i)==1) return i; }}int main(){ int

2014-09-15 17:07:52 507

原创 hdu 5015 Matrix 233 矩阵快速幂

题目链接:点击打开链接

2014-09-15 16:44:16 457

原创 hdu 4994 Revenge of Nim 博弈

题目链接:点击打开链接题意:有n堆石头,每个石头有

2014-09-12 22:12:56 584

原创 hdu 4995 暴力

题目链接:#include #include #include #include using namespace std;struct Node{ double v; int x,rank; bool operator <(const Node& a ) const{ return x<a.x; }}node[100010];void read(i

2014-09-12 21:56:04 686

原创 hdu 4990 Reading comprehension 矩阵快速幂or数论 bestcoder round 8b

链接:点击打开链接题意:给一个程序求

2014-09-08 12:38:25 548

原创 hdu 4704 sum 费马小定理

题目链接:题意:求2的(n-1)次幂。n

2014-09-07 10:40:25 592

原创 POJ 3255 Roadblocks 次短路

题目链接:点击打开链接题意:一个无向图,从

2014-09-03 21:14:06 449

原创 hdu 4767 bell 中国剩余定理+矩阵快速幂

题目链接:cpp:点击打开链接

2014-08-30 15:15:00 632

原创 acdream 1195

题目链接:点击打开链接题意

2014-08-29 21:59:50 521

原创 acdream 1188 telephone number 模拟

链接:点击打开链接

2014-08-29 21:58:36 576

原创 zoj 3805 Machine

题目链接:zoj 3805题意:

2014-08-24 17:22:13 665

原创 某邻居的WIFI密码

看到这么小气的邻居,本屌不能忍了!!!

2014-08-22 19:34:02 1488

空空如也

空空如也

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

TA关注的人

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