自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 问答 (1)
  • 收藏
  • 关注

原创 HDU2824 欧拉函数

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2824#include#includeusing namespace std;typedef long long ll;const int N=3e6;int phi[N+3];void init(){ for(int i=1;i<=N;i++) phi

2016-07-27 01:33:55 307

原创 HDU1286 欧拉函数

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286通项:φ(x) = x * ( 1 - 1 / p1 ) *( 1 - 1 / p2 ) * ( 1 - 1 / p3 ) ...... ( 1 - 1 / pn ),其中p为x的质因子code:#include#includeusing namespace std;in

2016-07-27 00:42:58 290

原创 HDU5573 Binary Tree(构造)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5573题目大意:给定二叉树(无限大)按顺序编号,青蛙可以沿着二叉树走k层,开始时为0,每层可以加上或减去该数字,求一种方案使得最终结果为N。任意一个2^k以内的奇数可以由k个2的n次幂相加减构成,如k=3时5 = 2 ^ 2+ 2 ^ 1 - 2 ^ 0  ,  3 = 2 ^ 2 - 2 ^

2016-07-26 14:55:47 246

原创 HDU5491 The Next

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5491题意:一个数对应的二进制的1的个数在[ s1 , s2 ]内,则称为WHY number。给定一个数字d为WHY number,求比d大的最小的WHY number(即下一个)思路:先计算出d的二进制中含有1的个数,如果小于上限d2且d是偶数,则答案为d+1。否则加

2016-07-26 14:39:51 292

原创 HDU5441 Travel 并查集

http://acm.hdu.edu.cn/showproblem.php?pid=5441无向图,n个点,m条带权边,q次询问,给出数值d,点a可以到点b当且仅当存在一条路线其中最大的权值不超过d。用sum记录连通块节点个数,两个连通块合并,结果增加( sum[a] + sum[b] ) * ( sum[a] + sum[b] - 1 ) - sum[a] * ( s

2016-07-24 23:16:04 255

原创 HDU2421 质因数分解、唯一分解定理

http://acm.hdu.edu.cn/showproblem.php?pid=2421唯一分解定理:  ;其中pi为质数                                     n的正约数个数:#include#include#includeusing namespace std;typedef long long ll;co

2016-07-22 15:42:40 1073

原创 HDU5514 Frogs 容斥原理

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5514题意:n只青蛙,m个编号为(0~m-1)的石头,所有青蛙开始站在编号为0的石头上,给定每只青蛙一次可以跳多少步,问最终所有被跳过的石头编号之和第一道容斥原理,看了别人的博客才懂了点。每只青蛙只能走到gcd(m,每次跳步)的倍数上,首先用divisor记录m的因子(不含本身),vis

2016-07-22 11:05:37 373

原创 HDU5478 Can you find it (快速幂)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5478#include#includeusing namespace std;typedef long long ll;ll C;ll quickpow(ll a,ll b){ ll r=1,c=a; while(b) {

2016-07-19 16:27:59 343

原创 HDU5489 Removed Interval (LIS变形)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5489思路:枚举删去部分,此时LIS=LIS(右)+右边第一个数在左序列arr的位置注意l==r时的情况#include#include#include#includeusing namespace std;const int N=1e5+10;con

2016-07-19 15:45:14 405

原创 POJ2533-Longest Ordered Subsequence(LIS)

最长上升子序列题目链接:http://poj.org/problem?id=2533#include#includeusing namespace std;int stack[1005];int main(){ int i,n,t; while(~scanf("%d",&n)) { int top=0; stack[

2016-07-18 00:45:10 251

原创 HDU5534--Partial Tree (完全背包)

点击打开链接思路:总度数为2n-2,由于每个节点都至少要有1个度,所以可以看做把剩余n-2个点放入n个节点的背包问题。dp[i]表示放入i个度后的最大值#include#include#includeusing namespace std;const int INF=-1e9;int f[10010];int dp[10010];int main(){ int T;

2016-07-14 16:58:22 262

原创 HDU5547-Sodoku 数独 DFS

点击打开链接题意:输入一个由1,2,3,4*组成的4*4的板块,板块再分成2*2个宫,每个宫由2*2个格子组成,要求同一行,同一列,同一宫中不能出现相同的数字。思路:数据不大,直接DFS#includeusing namespace std;char a[8][8];struct node{ int x; int y;};node q[20]

2016-07-14 13:51:00 374

原创 HDU5438--Ponds (拓排+BFS)

点击打开链接题意:给定n个池塘,m对池塘相连,现在要将与少于2个池塘相连的池塘拆除,形成森林,求节点数为奇数的树权值之和思路:按照拓排的思想不断删除度数小于2的节点#includeusing namespace std;typedef long long ll;const int N=1e4+5;vector G[N];queue Q;//拓排队列que

2016-07-14 13:43:12 276

原创 HDU5510 Bazinga 暴力strstr+剪枝

点击打开链接题意:给定n个字符串,求出满足条件:存在j直接暴力超时,需要剪枝。如果判断出串A是串B的字串,下次就可以不用判断A了。因为如果串B是串C的字串,那么串A一定也是串C的字串。#include#include#includeusing namespace std;char a[503][2003];int visit[503];int m

2016-07-12 15:56:14 313

原创 HDU5437 Alisha’s Party 优先队列

点击打开链接可能出现的问题:1.当门外人数不足p人时没有判断队列非空,导致RE。2.在m次开门之后最后进来到一批人没有入队。3.给定的开门时间可能是打乱的,需要进行排序。#include#include#include#include#include#include#includeusing namespace std;struct pe

2016-07-12 13:38:46 297

原创 HDU5546 Ancient Go DFS

点击打开链接题意:给定一个9*9的棋盘,问黑子能否在下一步将白子围住(四面)。由于数据不大,可以直接将'.'换成'x',用DFS搜索。#include#includeusing namespace std;char chess[11][11];bool visit[11][11];int turnx[4]={1,-1,0,0};int turny[4]=

2016-07-11 23:09:45 544

原创 HDU 5253 最小生成树(kruskal)+ 并查集

题目链接#include#include#include#include#define N 1000010using namespace std;struct node{ int a;//端点1 int b;//端点2 int num;//权值};bool cmp(node x,node y)//按权值升序{ return x.n

2016-07-10 16:29:50 249

空空如也

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

TA关注的人

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