
HDOJ
poptree hengli
这个作者很懒,什么都没留下…
展开
-
HDU 5058 So easy
用set判断一下#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define mt(a) memset(a,0,sizeof (a))#defi原创 2016-03-02 10:00:54 · 339 阅读 · 0 评论 -
HDU 5100 Chessboard(暴力)
给出一个n*n的放个 问用1*k的长条覆盖他 最多能覆盖几个格子#include#include#include#include#include#include#include#include#include#include#include#include#include //#include#define MAXN 1000005#define M原创 2016-04-08 16:14:12 · 453 阅读 · 0 评论 -
HDU 5101 Select(暴力二分)
先统计每个班级里有几对是可以的 在统计总的有几对可以 答案就是相减,因为重复计算所以答案还要除以二统计方法直接二分#include#include#include#include#include#include#include#include#include#include#include#include#include //#include原创 2016-04-08 16:14:48 · 455 阅读 · 0 评论 -
HDU 5723 Abandoned country(最小生成树+DFS)
给定一个图求其最小生成树,并且算出最小生成树上任意两个点的期望距离因为题目中说到每条边的边权都是唯一的,所以可以知道最小生成树唯一然后求期望距离。点的数目非常大所以求出任意两点间距离在算期望距离是不现实的。但是根据期望的累加性质可以想到,对于每条边,他对期望的贡献是经过他的路径数量*边权。而经过这条边的数目为这条边左边的点和右边点的积。最后问题转化成统计一棵树上每个点他的子树的点数原创 2016-07-26 14:50:28 · 470 阅读 · 0 评论 -
HDU 5724 Chess(SG函数 Nim博弈)
给定一个n*20的棋盘,在棋盘上有m个棋子,每个棋子的合法移动是当这个棋子右边没有棋子时,将这个棋子移动到右边一格,当右边有棋子时,到其右边下一个位置直到第一个空的位置。因为棋子的移动只在行上,所以容易想到多堆的nim博弈。因为每行20个空格。所以刚好可以状压枚举所有情况的sg值。刚开始不知道sg值的范围所以用的是set来保存,结果TLE,最后打表看了一下最大值只有20.。。最后结果就原创 2016-07-26 14:57:34 · 540 阅读 · 0 评论 -
HDU 5726 GCD(DP+线段树)
给定一个序列,对于每次查询,有多少个连续的子序列gcd等于x到y的序列的gcdan记录不同gcd的数目,cot为滚动map用来记录第i-1位为终止位置的子区间的gcd的种类和数目,然后处理出所有lr范围内的gcd的数目然后对于每次查询的lr的gcd,用线段树查询一下就好了#include #include #include #include #include原创 2016-07-26 15:02:49 · 447 阅读 · 0 评论 -
HDU 5727 Necklace(枚举+二分图匹配)
给定n个阴n个阳,按照阴阳的顺序排列问变暗的最少有几个首先想到的是二分图,因为阴阳很符合二分图的性质。但是很快又把自己否定了,因为前几天的一场 CF有一题是安排时间是去体育馆还是学习的题目当时也觉得是二分图但是搞到结束都没有写出来。所以又感觉这题不是二分图了。。看了题解,因为只有八个点 ,所以做一次二分图的速度非常快,所以枚举位置9!。对于每种情况做一次二分图匹配,时间复杂度居然也意外的合原创 2016-07-28 09:18:17 · 455 阅读 · 0 评论 -
HDU 2196 Computer(树状DP)
给定一课树,输出每个节点的到其他节点的最远距离dp_down[i]表示从i出发到达其子节点的最大距离dp_up[i]表示从i出发到其父节点的最大距离我们先更新完dp_down然后对于每个节点我们找到最大值最小值,同时把之前已经找到最大值算进入,然后更新dp_up最后每个节点的最远距离为 max(dp_up,dp_down)#includ原创 2016-08-16 12:56:44 · 410 阅读 · 0 评论 -
HDU 5528 Count a * b(数论)
k(n)=n*n-f(n)可以知道对于一个k(p1^a1*p2^a2....pn^a2)=k(k1^a1)*....*k(kn^an)然后又对于k(p^a)=(a+1)*(p^a)-k*(p^a-1)那么对于g(n)=约数平方和+素数的h的和的乘机#include #include #include #include #include #include #inc原创 2016-08-28 20:03:37 · 649 阅读 · 0 评论 -
HDU 5775 Bubble Sort(线段树)
对于给定的程序,要求输出每个数字在程序运行过程中的最左边的位置和最右边的位置的差值观察程序可知,这个冒泡排序有以下性质:1.每次将值从小到大的顺序放到正确的位置上2.对于未排序的数字,他们的顺序和原始数列一致故我们可以比较容易的发现,每个数字的最右值为 x+(已经出现的比数字x大的数字个数)而每个数字的最左值为 当前位置,或x#include #include原创 2016-09-09 15:05:07 · 406 阅读 · 0 评论 -
HDU 5763 Another Meaning(KMP+DP)
对于给定的字符串A以及字符串B已知B字符串可以被替换问总共有多少种替换的方式对于A中存在的B的连续子串,这个显然需要用KMP处理出每个B子串的位置然后问题变成了dpdp[i]为 前i个字符能够替换的方式状态转移方程为原创 2016-09-09 15:13:46 · 502 阅读 · 0 评论 -
HDU 5863 cjj's string game(矩阵快速幂)
对于给定的k个不同的字符,问对于用这k个字符构造出的长度为n的字符串,他们的对应位置子串长度最大值为m的数目是多少对于dp[i][j]=dp[i-1][j-1]*kdp[i][0]=(dp[i-1][0]+dp[i[1]+...+dp[i][m])*(k-1)*k这几两个公司可以用矩阵来优化#include#include #include #include原创 2016-11-01 13:34:09 · 444 阅读 · 0 评论 -
HDU 2971 Tower (矩阵快速幂)
对于一个数列求前n相的平方和设可得到对于前n相和 可以发现重复项和可得根据得到的不变项可得需要注意将负数加mod取模之后处理成正数数据很大 连续取mod可能超时#include #include #include #include #include #include #includ原创 2016-11-23 16:16:52 · 441 阅读 · 0 评论 -
HDU 5923 Prediction (并查集)
题意: 给定一个图G={V_G,E_G} G=\text{{V_G,E_G}} ,同时给定一个树T={VT∈EG,ET}T=\{V_T\in E_G,E_T\},给定qq组树上的点集合ViV_i,问由ViV_i以及ViV_i所有节点的父节点节点说构成的子图G′={VG,EG′∈Vi or EG′ is ancent of Vi}G'=\{ V_G,E_{G'}\in V_i \text{ or }原创 2017-02-10 15:28:30 · 593 阅读 · 0 评论 -
HDU 6031 Innumerable Ancestors(LCA,树链剖分)
题意: 对于给定的一棵树,树上点的数目为nn,有qq次询问,每次寻味给定两个点集A,BA,B,求MAX(LCA(u,v)),u∈A,v∈BMAX(LCA(u,v)),u\in A,v\in B.其中k=∑mi=0(size(A)+size(B)),,k≤1e6,n≤1e6k=\sum_{i=0}^{m}{(size(A)+size(B))},,k\leq 1e6, n\leq 1e6。思路: 先对树原创 2017-05-11 11:59:42 · 480 阅读 · 0 评论 -
HDU 1027 Ignatius and the Princess II(全排列)
题意: 对于给定的 1-n的序列,输出第m个全排列 思路: 注意到m最多只有10000,故最多只需要改变末尾的k个,对末尾的k个进行全排列,然后顺序输出//#include <iostream>//#include <cstdio>//#include <string>//#include <cstring>//#include <string.h>//#include <cmath>原创 2017-06-24 14:28:35 · 465 阅读 · 0 评论 -
HDU 1043 全排列 康托展开
#include #define lowbit(x) (x&(-x))using namespace std;typedef long long ll;typedef pair pii;#define sp system("pause")int dx[4] = {0,0,1,-1};int dy[4] = {1,-1,0,0};char t[4] = {'l','r','u原创 2017-07-17 17:15:55 · 403 阅读 · 0 评论 -
Codeforces 101206 H & HDU 6006 Engineer Assignment
题意:给定NN个任务和MM个工程师。每个任务PiP_i由AiA_i个部件CijC_{ij}组成。每个工程师EiE_i能够处理BiB_i个部件CijC_{ij}。每个工程师只能处理一个任务。一个任务可以由多个工程师处理。一个任务当且仅当所有部件被处理后才算被完全解决。问如何安排能够使得完成的任务数目最多。数据范围:1≤N,M≤101\leq N,M \leq 101≤C≤1001\leq C \leq原创 2017-10-07 10:36:49 · 558 阅读 · 0 评论 -
hdu 1241 Oil Deposits (BFS)
简单BFS#include#include#include#include#include#include#include#include#include#include#include#include#include#define hash hashhusing namespace std;typedef long long ll;#define in原创 2016-03-25 12:41:54 · 453 阅读 · 0 评论 -
HDU 1495非常可乐(BFS)
当s为奇数时直接输出NO 否则容易超时。。#include#include#include#include#include#include#include#include#include#include#include#include#include#define hash hashhusing namespace std;typedef long long原创 2016-03-25 11:18:19 · 402 阅读 · 0 评论 -
HDU 5056 Boring count
用数组a[26]记录每次字母出现的次数,用j标记起点坐标,对于每个字母a[i],以他结尾并且符合条件的字符串有i-j个然后从第一个字母开始,但重复字母等于k的时候,将从j开始找第一个a[j]=a[i]每次ans+=(i-j)#include#include#include#include#include#include#include#include#i原创 2016-02-29 19:30:51 · 424 阅读 · 0 评论 -
HDU 5059 Help him(字符串)
讲道理应该stringstream 一下判断原来的两个字符串是否相等应该就可以了 日常CC+CV#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include原创 2016-03-02 10:01:55 · 394 阅读 · 0 评论 -
HDU 5066 Harry And Physical Teacher(数学)
动能方程。。。。。#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define mt(a) memset(a,0,sizeof (a))#define原创 2016-03-15 21:00:14 · 411 阅读 · 0 评论 -
HDU 5067 Harry And Dig Machine(暴力)
好像状压DP也能搞,2^10的复杂度应该是比直接暴力40W的复杂度好很多,不减枝的话900ms,减枝可以优化到600ms#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include原创 2016-03-15 21:01:02 · 468 阅读 · 0 评论 -
HDU 2412 Party at Hali-Bula(树状DP)
如何得到最大人数还是比较简单的。。。难的是如何判断唯一。。搞不出来#include#include#include#include#include#include#include#include#include#include#include#include#define hash hashhusing namespace std;typedef long原创 2016-03-16 21:03:55 · 341 阅读 · 0 评论 -
HDU 5062 Beautiful Palindrome Number(暴力)
打表 不知道直接暴力会不会超时#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define mt(a) memset(a,0,sizeof (原创 2016-03-04 20:21:21 · 362 阅读 · 0 评论 -
HDU 5063 Operation the Sequence(暴力)
蒙蔽,讲道理第二种空间比第一种用的少,时间也应该少,为啥就TLE了#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define mt(a) mem原创 2016-03-05 10:35:56 · 437 阅读 · 0 评论 -
HDOJ 5630 Rikka with Chess(游戏)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5630打BC的时候手头没纸没笔,脑补了一下,也不知道为啥就过了。#includeusing namespace std;int main(){ int T; cin>>T; while(T--) { int n,m; c原创 2016-02-21 09:58:50 · 571 阅读 · 0 评论 -
HDOJ 5631 Rikka with Graph(图论)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5631题目大意:给出一个n个点n+1条边的连通图,要求在删掉m(m>0)条边的情况下,还能保证图是连通图的方法有几种思路:显然要保证连通图要有n-1条边,即可以删掉一条或者两条边。使用暴力枚举所有可以删除边的方法,然后对图进行dfs判断是否联通。没有使用并查集的情况下,时间为950ms接原创 2016-02-21 10:03:00 · 751 阅读 · 2 评论 -
HDU 5607 graph(矩阵快速幂)
类似图上的概率dp#include#include#include#include#include#include#include#include#include#include#include#include#include#define hash hashhusing namespace std;typedef long long ll;#defin原创 2016-03-31 21:58:40 · 431 阅读 · 0 评论 -
HDU 4993 Revenge of ex-Euclid(暴力)
http://acm.hdu.edu.cn/showproblem.php?pid=4993给出a,b,c要求算出满足ax+by=c的(x,y)有几组 直接暴力#include#include#include#include#include#include#include#include#include#include#include#include#i原创 2016-02-24 18:45:18 · 465 阅读 · 0 评论 -
HDU 4994 Revenge of Nim(玄学)(Nim问题)
http://acm.hdu.edu.cn/showproblem.php?pid=4994给出n堆,然后两个人先后手从A1堆拿到An堆 不能拿的人失败首先 ,对于一堆的情况,先手必胜。两堆的情况,第二堆的先手必胜。同理可得三堆四堆。首先设flag=0,表示胜负未定,当开始为连续的1时,当前堆的先后手轮流替换。当这一堆为数目大于1的时候,就代表当前先手可以原创 2016-02-24 18:47:35 · 628 阅读 · 0 评论 -
HDU 4995 Revenge of kNN(暴力)
http://acm.hdu.edu.cn/showproblem.php?pid=4995暴力,代码还没调对,这种题意不明的模拟题真的烦死了#include#include#include#include#include#include#include#include#include#include#include#include#include原创 2016-02-25 18:37:58 · 427 阅读 · 0 评论 -
HDU 5018 Revenge of Fibonacci
求第三个数字是不是类Fib数列中的一项#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define mt(a) memset(a,0,sizeof (a))原创 2016-02-26 20:00:13 · 395 阅读 · 0 评论 -
HDU 5019 Revenge of GCD
求A,B两个数字的第K大公约数,,先算出最大公约数 然后暴力求出最大公约数的所有约数#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define mt(a) me原创 2016-02-26 20:01:55 · 438 阅读 · 0 评论 -
HDU 1022 Train Problem I(stack)
给出 入队序列和出对序列 判断能否实现 如果可以 输出方法,反之 输出否#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define mt(原创 2016-02-29 18:10:39 · 364 阅读 · 0 评论 -
HDU 5054 Alice and Bob
傻了,显然在xy必须在矩形中间才能相遇#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define mt(a) memset(a,0,size原创 2016-02-29 19:24:23 · 381 阅读 · 0 评论 -
HDU 5055 Bob and math problem(构造)
无法输出的情况稍微难处理其他的只要贪心构造一下就好了#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define mt(a) memset(a,0,siz原创 2016-02-29 19:26:36 · 386 阅读 · 0 评论 -
Codeforces 101206 I & HDU 6007 Mr. Panda and Crystal
题意:给定NN种水晶和MM个魔力。你可以选择用CiC_i的魔力创造一个水晶,或者根据公式KiK_i来转化一个水晶,问你能得到的最大值。思路:首先对水晶的单价进行处理。过程类似dij,每次将最小价值的水晶出队并更新以他左右材料之一的公式生成的水晶价格。最后对得到的最小值做一次背包即可。#include<iostream>#include<cstdio>#include<cmath>#includ原创 2017-10-07 10:41:47 · 490 阅读 · 0 评论