自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ZSQ

新的一天,新的不会

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

原创 HDU 5638 Toposort(贪心+优先队列+拓扑排序)

Description 给出一个n个点m条边的有向无环图,要就删去k条边后使得该图的最小字典序拓扑序的字典序尽可能小 Input 第一行一整数T表示用例组数,每组用例首先输入三个整数n,m,k分别表示点数,边数以及要删去的边数,之后m行每行两个整数u和v表示u到v有一条有向边(1<=n<=1e5,0<=k<=m<=2e5) Output 对于每组用例,设删去k条边后最小拓扑序为p1,…,p

2016-09-19 23:17:35 743

原创 HDU 5637 Transform(bfs)

Description 给出n个数的序列a,对于一个整数x,有两种操作: 1.改变x二进制中任一位 2.将x变为x^a[i],1<=i<=n m次查询,每次查询输入两个整数x和y,问x最少经过多少次操作可以变成y Input 第一行一整数T表示用例组数,每组用例首先输入两整数n和m表示序列长度和查询数,之后n个整数ai,最后m行每行两个整数x,y表示一次查询 (T<=20,1<=n<=

2016-09-19 23:07:08 430

原创 HDU 5636 Shortest Path(Floyd)

Description n个点,i点与i+1点之间有一条边(1<=i < n),现在在这张图中再加三条边,所有边权都是1,m次查询,每次查询si到ei的最短路zi,求sum{i*zi} Input 第一行一整数T表示用例组数,每组用例首先输入两个整数n和m表示点数和查询数,之后六个整数a1,b1,a2,b2,a3,b3表示新加的三条边的起点和终点,最后m行每行两个整数si,ei表示该次查询si

2016-09-19 22:55:59 396

原创 HDU 5635 LCP Array(水~)

Description 一个由小写字母组成的长度为n的字符串,定义ai为该字符串第i个字符开始的后缀与第i+1个字符开始的后缀的最长公共前缀长度,现在给出a序列,问有多少种字符串与其对应(1<=i < n) Input 第一行一整数T表示用例组数,每组用例首先输入字符串长度n,之后n-1个整数表示a序列(2<=n<=1e5,0<=ai < n) Output 对于每组用例,输出合法字符串数

2016-09-19 22:47:45 390

原创 HDU 5634 Rikka with Phi(线段树+欧拉函数)

Description 一个长度为n的序列A[1,..,n],三种操作: 1 l r:对于所有介于区间[l,r]中所有i,将A[i]变成phi(A[i]) 2 l r x:对于所有介于区间[l,r]中所有i,将A[i]变成x 3 l r:求A[l]+A[l+1]+…+A[r] Input 第一行一整数T表示用例组数,每组用例输入两整数n和m表示序列长度和操作数,之后n个整数Ai表示该序列

2016-09-19 22:40:14 621

原创 HDU 5631 Rikka with Graph(并查集)

Description n个点,n+1条边,问删去一些边后仍是连通图的方案数 Input 第一行一整数T表示用例组数,每组用例首先输入一正整数n表示点数,之后n+1行每行两整数u,v表示u和v之间有一条边(T<=30,n<=100) Output 对于每组用例,输出删去一些边后仍是连通图的方案数 Sample Input 1 3 1 2 2 3 3 1 1 3 Sample

2016-09-19 22:27:59 387

原创 HDU 5630 Rikka with Chess(构造)

Description 一个n*m的奇偶相间的格子,每次可以任选一个子矩形将其中所有块颜色翻转,问使得所有格子变成相同颜色所需最少步数 Input 第一行一整数T表示用例组数,每组用例输入两整数n和m(T<=10,n,m<=1e9) Output 对于每组用例,输出最少步数 Sample Input 3 1 2 2 2 3 3 Sample Output 1 2 2 S

2016-09-19 22:18:34 394

原创 HDU 5629 Clarke and tree(Purfer序列+dp+组合数学)

Description 给出n个正整数ai,现从n个点中选s个点构成一棵树,使得编号为i的节点度数不超过ai,问所有可能情况数 Input 第一行一整数T表示用例组数,每组用例首先输入一整数n,之后n个整数ai (1<=T<=10,2<=n<=50,1<=ai < n) Output 对于每组用例,输出n个数,第s个数表示节点数为s的合法的树的数量,结果模1e9+7(1<=s<=n)

2016-09-19 22:03:57 763

原创 HDU 5628 Clarke and math(Dirchlet卷积+快速幂)

Description 给出f(i),i=1,2,…,n,求 Input 第一行一正整数T表示用例组数,每组用例首先输入一正整数n表示f序列长度,之后n个整数f(i)(1<=T<=5,n<=100000,0<=f(i) < 1e9+7) Output 对于每组用例,输出g(1),g(2),…,g(n) Sample Input 2 6 2 2 3 3 3 3 3 23 3 2

2016-09-19 10:58:11 1008

原创 HDU 5877 Weak Pair(dfs+BIT)

Description 给出一个N个点的有根树,每个点有一个点权ai,定义有序对(u,v)是弱的当且仅当: 1.u是v的祖先节点 2.au*av<=k 求所有弱有序对的数量 Input 第一行一整数T表示用例组数,每组用例首先输入两个整数n和k,之后输入n个整数ai表示每个的点权,最后n-1行每行两个整数u和v表示两点在树上有一条边相连 (1<=n<=1e5,0<=ai<=1e9,0

2016-09-19 10:23:20 565

原创 HDU 5876 Sparse Graph(bfs)

Description 给出一个n个点m条边的无向图,边权均为1,给出一起点s,求其补图任一点到s的最短路长度 Input 第一行一整数T表示用例组数,每组用例首先输入两整数n和m表示点数和边数,之后m行每行两个整数u和v表示u和v之间有一条无向边,最后一整数s表示起点 (1<=T < 35,2<=n<=200000,0<=m<=20000,1<=u,v,s<=n) Output 对于每

2016-09-19 10:11:08 502

原创 HDU 5874 Friends and Enemies(构造)

Description 有m个人n种珠子,现在要用这些种珠子给m个人每人串一条项链(长度可以为0),两个人之间要么是朋友关系要么是敌人关系,要求两个人是朋友时他们的项链必须至少有一个颜色相同的珠子,两个人是敌人时他们的项链必须没有颜色相同的珠子,判断这n种珠子是否能满足条件 Input 多组用例,每组用例输入两个整数m和n分别表示人数和珠子种类数,以文件尾结束输入(m,n<2^31) Out

2016-09-19 09:37:20 530

原创 HDU 5873 Football Games(Landau's Theorem)

Description n支队伍比赛,每支队伍要和其他n-1支队伍各比一场,赢得两分,输得0分,平各得一分,现给出n支队伍的最终得分,问是否存在满足此得分的情况 Input 多组用例,每组用例首先输入一整数T表示得分情况数,之后T行每行首先输入一整数n表示队伍数,之后n个非负整数ai表示每个队的得分 (用例组数&lt;=10,T&lt;=100,n&lt;=20000,ai&lt;=20...

2016-09-19 09:24:10 389

原创 HDU 5869 Different GCD Subarray Query(数论+BIT)

Description 一个长度为n的序列a,m次查询,每次查询一个区间[l,r]的所有子区间的区间gcd中不同数的个数 Input 多组用例,每组用例第一行两个整数n和m表示序列长度和查询数,之后n个整数ai表示该序列,最后m行每行两个整数l,r表示查询区间(1<=n,m<=1e5,1<=ai<=1e6) Output 对于每个查询,输出区间[l,r]的所有子区间的区间gcd中不同数的个

2016-09-19 09:18:53 472

原创 HDU 5868 Different Circle Permutation(dp+polya+矩阵快速幂+欧拉函数)

Description 环上均匀分布n个点,每个点可以坐人和不坐人,相邻两点不能同时坐人,旋转后相等视为同一种方案,问有多少种方案 Input 多组用例,每组用例输入一个整数n,以文件尾结束输入 (不超过50组用例,1<=n<=1e9) Output 对于每组用例,输出合法方案数 Sample Input 4 7 10 Sample Output 3 5 15 Solu

2016-09-16 14:19:23 2205

原创 HDU 5875 Function(单调栈+在线倍增法)

Description n支队伍比赛,每支队伍要和其他n-1支队伍各比一场,赢得一份,输不得分,现给出n支队伍的最终得分,问是否存在满足此得分的情况 Input 第一行一整数T表示用例组数,每组用例首先输入队伍数n,之后n个整数ai表示第i支队伍的最终得分(T<=50,n<=50000,0<=ai < n) Output 如果存在满足此得分的情况则输出“It seems to have n

2016-09-16 10:43:15 448

原创 HDU 5381 The sum of gcd(数论+莫队算法)

Description 给出一序列a,定义,m次查询,每次给出l,r,求f(l,r) Input 第一行一整数T表示用例组数,每组用例首先输入一整数n表示序列长度,然后n个整数ai,之后输入一整数m表示查询数,之后m行每行两个整数l,r表示一个查询 (1<=T<=3,1<=n,m<=1e4,1<=ai<=1e9,1<=l < r<=n) Output 对于每个查询,输出f(l,r) S

2016-09-16 10:26:38 975

原创 BZOJ 1005 明明的烦恼(Purfer序列+组合数学+数论+高精度)

Description 自从明明学了树的结构,就对奇怪的树产生了兴趣……给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为N(0 < N < = 1000), 接下来N行,第i+1行给出第i个节点的度数Di,如果对度数不要求,则输入-1 Output 一个整数,表示不同的满足要求的树的个数,无解输出0 Sample I

2016-09-03 15:37:55 650

原创 BZOJ 1004 Cards(polya+dp)

Description 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有多少种染色方案,Sun很快就给出了答案.进一步,小春要求染出Sr张红色,Sb张蓝色,Sg张绝色.他又询问有多少种方案,Sun想了一下,又给出了正确答案. 最后小春发明了M种不同的洗牌法,这里他又问Sun有多少种不同的染色方案.两种染色方法相同当且仅当其中一种可以通过任

2016-09-03 15:09:48 584

原创 BZOJ 1003 物流运输(SPFA+dp)

Description   物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。但是修改路线是一件十分麻烦的事情,会带来额外的成本。因此物流公司希望能够订一个

2016-09-03 14:59:44 967

原创 BZOJ 1002 轮状病毒(生成树计数+高精度)

Description   轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的。一个N轮状基由圆环上N个不同的基原子 和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道。如下图所示   N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不 同的3轮状病毒,如下图所示 现给定n(N<=100),编程计算有多

2016-09-03 14:52:25 997

原创 BZOJ 1001 狼抓兔子(Dijkstra)

Description 现在小朋友们最喜欢的”喜羊羊与灰太狼”,话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下三种类型的道路 1:(x,y)<==>(x+1,y) 2:(x,y)<==>(x,y+1) 3:(x,y)<

2016-09-03 11:05:05 528

原创 HDU 5867 Water problem(水~)

Description 统计1~n所有数字的英文表示的字符个数 Input 第一行一整数T表示用例组数,每组用例输入一整数n(1<=n<=1000) Output 对于每组用例,输出1~n所有数字的英文表示的字符个数 Sample Input 3 1 2 3 Sample Output 3 6 11 Solution 简单题 Code#include<cstdio>

2016-09-03 10:52:59 353

原创 HDU 5863 cjj's string game(dp+矩阵快速幂)

Description 有种不同的字符,每种字符有无限个,要求用这k种字符构造两个长度为n的字符串a和b,使得a串和b串的最长公共部分长度恰为m,问方案数 Input 第一行一整数T表示用例组数,每组用例输入三个整数n,m,k (1<=T<=100,1<=n<=10^9,1<=m<=10,1<=k<=26) Output 对于每组用例,输出方案数,结果模1e9+7 Sample Inp

2016-09-03 10:20:41 919

原创 HDU 5862 Counting Intersections(BIT+扫描线)

Description 给出若干水平竖直的线段,求交点个数 Input 第一行一整数T表示用例组数,每组用例首先输入一整数n表示线段个数,之后四个整数x1,y1,x2,y2表示线段两端点的坐标,保证任意一条线段不会被其他线段所包含(1<=n<=10^5,所有点坐标的绝对值不超过1e9) Output 对于每组用例,输出水平线与竖直线的交点个数 Sample Input 2 4 1

2016-09-03 09:45:38 471

原创 HDU 5861 Road(线段树)

Description n个村庄编号1~n,i到i+1村庄有一段铁路,每段铁路只能被开启一次关闭一次,铁路开启则每天需要一个花费wi,现在给出m天每天需要开启的铁路区间,问每天的最小花费,初始时所有铁路处于关闭状态 Input 多组用例,每组用例首先输入两个整数n和m,之后n-1个整数表示每段铁路开启一天的花费wi,最后m行每行两个整数l,r,表示当天l村庄和r村庄之间的铁路需要处于开启状态(

2016-09-02 22:34:12 357

原创 HDU 5860 Death Sequence(dp)

Description n个人站成一排,每次从左边第一个人开始每隔k个人让一个人出列,q此查询,每次查询某次出列人的编号 Input 第一行一整数T表示用例组数,每组用例首先输入三个整数n,k,q,之后q行每行一个整数m表示查询第m个出列的人的编号(1<=n<=3000000,1<=q<=1000000,1<=m<=n) Output 对于每次查询,输出第m个出列的人的编号 Sample

2016-09-02 22:25:49 363

原创 HDU 5858 Hard problem(计算几何)

Description 求下图阴影部分面积 Input 第一行一整数T表示用例组数,每组用例输入一个整数L表示正方形边长(1<=T,L<=10000) Output 对于每组用例,输出阴影部分面积,结果保留到小数点后两位 Sample Input 1 1 Sample Output 0.29 Solution 计算几何 Code#include<cstdio>#inc

2016-09-02 22:12:56 380

原创 HDU 5857 Median(水~)

Description 给出一个长度为n的有序序列Ai,m次查询,每次查询输入两个区间[l1,r1],[l2,r2],输出将这两个区间的数放在一起后的中位数 Input 第一行一整数T表示用例组数,每组用例首先输入两整数n和m表示序列长度和查询数,之后n个整数Ai表示该序列,之后每次输入四个整数l1,r1,l2,r2表示一次查询 (T<=200,n,m<=100000,Ai最多是32位int

2016-09-02 22:03:34 581

原创 HDU 5855 Less Time, More profit(最大权闭合子图)

Description m家商店,n家工厂,第i家商店赢利vi元的前提是建立对应的ki家工厂,建立第i家工厂需要花费wi,用时ti,工厂的建立可以同时进行,问总赢利不小于L所需的最小时间 Input 第一行一整数T表示用例组数,每组用例首先输入三个整数n,m,L表示工厂数,商店数,以及赢利下限,之后m行每行两个整数wi和ti表示建立第i个工厂的花费和用时,最后n行每行首先输入该家商店的赢利wi

2016-09-02 21:55:49 455

原创 HDU 5852 Intersection is not allowed!(组合数学+行列式)

Description 一个n*n棋盘,第一行第a1,a2,…,ak列有k个棋子,每个棋子都只能往下和往右走,每个棋子的终点是第n行第b1,b2,…,bk列,问这k个棋子到达各种的终点且路径不交叉的方法数 Input 第一行一整数T表示用例组数,每组用例首先输入两整数n和k表示棋盘规模和棋子数量,之后k个整数ai表示k个棋子的起点,最后k个整数bi表示k个棋子的终点(1<=n<=10^5,1<

2016-09-02 21:39:21 1019

原创 HDU 5842 Lweb and String(水~)

Description 给一个由小写字母组成的字符串,统计里面有多少不同的字符 Input 第一行一整数T表示用例组数,每组用例输入一个串长不超过10^5的由小写字母组成的字符串(1<=T<=20) Output 对于每组用例,输出字符串中不同高度字符个数 Sample Input 2 aabcc acdeaa Sample Output Case #1: 3 Case #2

2016-09-02 21:14:52 313

原创 HDU 5839 Special Tetrahedron(计算几何)

Description 给出n个整点,先从这n个点中选四个点,问其组成一个至少四条边相等的四面体的方案数,注意如果该四面体只有四条边相等那么另外两条边必须是对边 Input 第一行一整数T表示用例组数,每组用例首先输入一整数n表示点数,之后n行每行三个整数x,y,z表示该点的横纵竖坐标(T<=20,n<=200,-2000<=x,y,z<=2000) Output 对于每组用例,输出合法方

2016-09-02 21:11:50 363

原创 HDU 5835 Danganronpa(贪心)

Description n种礼物,每种礼物ai个,要求将礼物送给尽可能多的人,每个人需要一份神秘礼物和一份普通礼物,要求相邻两人的普通礼物不相同 Input 第一行一整数T表示用例组数,每组用例首先输入一整数表示礼物种类数,之后n个整数ai表示每种礼物的数量(T<=10,1<=n<=10,1<=ai<=10^5) Output 对于每组用例,输出能够收到礼物的最多人数 Sample In

2016-09-02 16:30:48 362

原创 HDU 5833 Zhu and 772002(高斯消元)

Description 给出n个数ai,每个数的最大素因子都不超过2000,从这n个数中选择一些数乘起来,有多少种方案使得结果是一个完全平方数 Input 第一行一整数T表示用例组数,每组用例首先输入一整数n,然后n个整数ai (1<=n<=300,1<=ai<=10^18) Output 输出方案数,结果模1e9+7 Sample Input 2 3 3 3 4 3 2 2

2016-09-02 16:15:01 353

原创 HDU 5832 A water problem(水~)

Description 输入一个整数,判断其是否同时是73和137的倍数 Input 多组用例,每组用例输入一个长度不超过10^7的数字串表示一个整数,以文件尾结束输入 Output 对于每组用例,如果该数是73和137的倍数则输出YES,否则输出NO Sample Input 10001 0 333 Sample Output Case #1: YES Case #2: Y

2016-09-02 16:09:42 319

原创 HDU 5831 Rikka with Parenthesis II(机智)

Description 给出一个括号序列,只允许且必须交换两个位置的括号,问是否存在一种交换方式使得交换后的序列是一个合法括号序列 Input 第一行一整数T表示用例组数,每组用例首先输入一整数n表示括号序列长度,之后是一个括号序列(1<=T<=1000,1<=n<=10^5) Output 对于每组用例,如果存在一种交换方案使得交换后形成一个合法的括号序列则输出Yes,否则输出No S

2016-09-02 16:07:13 349

原创 HDU 5829 Rikka with Subset(NTT)

Description 给出一个长度为n的序列A,定义一个非空集合S的价值为这个集合第min{|S|,k}大的数,定义一个序列的价值为这个序列的所有非空子集价值之和,对[1,n]中任一k,求A序列的价值 Input 第一行一整数T表示用例组数,每组用例首先输入一整数n表示序列长度,之后n个整数Ai表示该序列(1<=T<=10,1<=n<=10^5,0<=Ai<=10^9) Output 对

2016-09-02 15:56:21 768

原创 HDU 5828 Rikka with Sequence(线段树)

Description 一个长度为n的序列Ai,三种操作: 1 l r x:区间[l,r]中所有Ai加上x 2 l r:区间[l,r]中所有Ai变成 3 l r:查询区间[l,r]中所有Ai的和 Input 第一行一整数T表示用例组数,每组用例首先输入两个整数n和q分别表示序列长度和操作数,之后n个整数表示序列Ai,最后q行每行表示一种操作 (1<=T<=100,1<=n<=10^5,

2016-09-01 21:18:16 528

原创 HDU 5826 physics(物理)

Description 数轴上有n个等质量小球,每个小球有一个初速度vi和一个运动方向,运动过程小球的加速度和速度乘积是常数c,两小球碰撞看作完全弹性碰撞,q次查询,每次查询t s后速度第k大的小球速度 Input 第一行一整数T表示用例组数,每组用例首先输入两个整数n和c表示小球数量以及小球运动过程中加速度和速度的乘积,之后n行每行三个整数xi,vi,di表示该小球的初始位置、初速度以及初始

2016-09-01 21:04:06 317

空空如也

空空如也

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

TA关注的人

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