自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

普通で歩む

tu gi he to

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

原创 HDU 2124 Can you find it?(二分)

思路:直接按照题目描述的话 n3{n^{3}} 的复杂度有些受不了,所以我们先预处理出 a[i] + b[i] 的所有情况存在一个数组里,然后对这个数组sort,之后每次分别查询 X - c[i] 是否在那个数组里即可。AC代码:#include <iostream>#include <cstdio>#include <string>#include <algorithm>#define ep

2017-01-17 23:32:59 504

原创 HDU 2199 Can you solve this equation? (二分法解方程)

坑点:注意double类型不能直接判断 == 判断a和b相不相等要借助eps(精度)写成 if( (a - b) < eps )#include <iostream>#include <cstdio>#include <string.h>#include <queue>#define eps 0.0000000001typedef long long int lli;using name

2017-01-17 15:16:34 141

原创 POJ 3522 最大边与最小边差值最小的生成树(最小生成树的性质)

思路:最小生成树的性质:最短边与最长边的间距,即:最长边的权值-最短边的权值 最小 所以对这个题来说,先对所有边的权值排个序,然后分别以其中的一条边作为最短边来进行最小生成树的构造,记录每个最小生成树的结果。注意,剩下的至少要有n-1条边才能构成,所以可以稍稍剪一下枝。#include <iostream>#include <cstdio>#include <string.h>#includ

2017-01-17 11:10:40 999

原创 HDU 1568 犀利的fibonacci数列(log 科学记数法)

思路:1)前20项没超过10000,直接递推出 2)首先我们知道fibonacci的通项公式: 然而这个得出来的数太大了。。。有一种很巧妙的思路:我们想要求出某个很大的数的前几位,比如求斐波那契数列第40项102334155的前6位,我们可以把 102334155化成1.02334155*10^8,然后把1.02334155这个数乘100000取整就可以了。这种方法可以求一个数的前任何位。

2017-01-16 17:04:19 81

原创 Poj 3070 Fibonacci (矩阵快速幂 )

矩阵快速幂:#include <iostream>#include <cstdio>#include <string.h>#include <cmath>#define N 2typedef long long int li;using namespace std;struct Mat{ long long int mat[N][N]; Mat(){ mat

2017-01-16 15:31:29 172

原创 POJ 3292 Semi-prime H-numbers (类似素数筛)

题意:定义一种数叫H-numbers,它是所有能除以四余一的数。 H-numbers分三种: 1、H-primes(素),这种数只能被1和它本身整除,不能被其他的H-number整除 2、H-semi-primes(半素)是由两个H-primes相乘得出的 3、剩下的是H-composite(合数) 问给一个数,求1到这个数之间有多少个H-semi-primes注意不要把合数算进去了。#i

2017-01-16 13:39:51 235

原创 HDU 1426 Sudoku Killer ( 暴力dfs 输入输出格式坑)

坑点:1,输入第二组之后的都是先输入哥换行再输入 2,输入每一组数据之后要换行,最后一组不用。 3,太粗心了,多样例的竟然把最重要的初始化忘了。。。#include <iostream>#include <cstdio>#include <string.h>#include <queue>#include <vector>using namespace std;int v[10][10]

2017-01-16 12:55:30 304

原创 HDU 2612 Find a way (两次bfs)

坑点:进了kfc可以从这个建筑物里出去,四面八方的出那种。。。#include <iostream>#include <cstdio>#include <string.h>#include <queue>using namespace std;int v[300][300];int ans[220][220];int d[4][2] = {{0,-1},{0,1},{1,0},{-1,0}

2017-01-15 20:47:26 301

原创 HDU 3003 PuPu(N非常大 语死早)

坑点:when an infant PuPu was born, all of its skins were opacity, and since the day that all of a PuPu’s skins has been changed from opacity to clarity, PuPu is an adult PuPu.翻译:当所有皮肤都变过一次色的时候,成熟。。。所以也就是

2017-01-15 10:36:48 295

原创 UVA 10025 The ? 1 ? 2 ? ... ? n = k problem (智商题?想象力)

卡点:1,可能是太困了,,状态差的一匹。。先是没有考虑k=0的情况,(其实当中输入过k=0,然后输出0,然而我的大脑没一点反应。。) 2,好不容易找到了这个trick,然后忘记写continue,导致k=0时总是多输出一个数。。。#include <iostream>#include <cstdio>#include <cmath>typedef long long int lli;usi

2017-01-14 22:47:18 93

原创 poj 3984 迷宫问题(bfs 输出序列)

#include <iostream>#include <cstdio>#include <string.h>#include <queue>using namespace std;int v[10][10];int cnt[10][10];// 记录走到这点的时间int d[4][2] = {{-1,0},{1,0},{0,-1},{0,1}};struct node{ int x

2017-01-14 16:22:12 279

原创 Hihocoder 1050 树中的最长路(树的直径 两次dfs/折点)

两次dfs:#include <iostream>#include <cstdio>#include <string.h>#include <queue>using namespace std;int vis[101000];int head[101000];int cnt;struct node{ int y; int next;};node e[300000];v

2017-01-14 16:17:18 241

原创 UVALive 3644 X-Plosives (并查集)

思路:当出现环路时,化合物会爆炸,所以我们通过并查集来构建一棵树,在这棵树上,增加任意一条边都会构成环路。问你有多少边是能使这颗树成环。#include <iostream>#include <cstdio>#include <string.h>#include <queue>#include <cmath>typedef long long int lli;using namespac

2017-01-13 22:06:19 393

原创 UVA 673 Parentheses Balance ( 栈 + 坑)

思路:其实就只说一点就好:scanf("%s",xxx) 会略过空串,然而这题空串也得输出yes。。。#include <iostream>#include <cstdio>#include <string.h>#include <queue>#include <cmath>typedef long long int lli;using namespace std;char s[222]

2017-01-13 21:43:44 267

原创 POJ 1442 Black Box(第k次询问第k小,两个堆)

思路:用一个大顶堆和一个小顶堆,将队列分为两部分,大顶堆的堆顶小于小顶堆的堆顶,这样就连续的把数列分开了,每次询问只要把小顶堆里的数扔到大顶堆里去,然后调整两个堆使得大顶堆的堆顶小于小顶堆的堆顶 ,然后此时大顶堆的堆顶就是第k小。#include <iostream>#include <cstdio>#include <string.h>#include <queue>#include

2017-01-13 21:37:19 248

原创 POJ 1862 Stripies (priority_queue 优先队列)

做法:全部放入队列,每次去两个大的进行 2 * sqrt(m1*m2 ) 因为要使最终的结果最小,所以大的先进行开方,(是因为先进行合并的进行更多次开方)。#include <iostream>#include <cstdio>#include <string.h>#include <queue>#include <cmath>typedef long long int lli;

2017-01-13 21:29:32 235

原创 HDU 2102 A计划(bfs + 判断)

注意:bfs+判断,类似与hdu1080。#include <iostream>#include <cstdio>#include <string.h>#include <queue>using namespace std;char s[20];struct node{ int z,x,y,t; node(int zz = 0,int xx = 0,int yy = 0,in

2017-01-13 10:40:56 65

原创 HDU 1180 诡异的楼梯(bfs+判断)

注意:1,楼梯不会连续出现,避免考虑很多楼梯连着的复杂情况。 2,存在等在楼梯前,然后走楼梯的情况。 3,考虑过了楼梯直接就是终点的情况。#include <iostream>#include <cstdio>#include <string.h>#include <queue>using namespace std;char s[22];int sx,sy;int v[30][30];

2017-01-12 21:37:15 179

原创 HDU 1016 Prime Ring Problem (dfs)

素数环简单dfs,深搜就好。#include <iostream>#include <cstdio>#include <string.h>using namespace std;int sp[50]; // 是否是素数int vis[20]; // 表示这个数字是否被访问过int ans[20];// 存答案的int n;bool isprime(int n){ for(int i

2017-01-12 14:34:17 150

原创 HDU 1241 dfs求连通块个数

dfs模板题好久没写题之后的小小复习。。#include <iostream>#include <cstdio>#include <string.h>using namespace std;int vis[110][110];char s[110];int ans = 0;int x[] = {-1,0,1};void dfs(int ii,int jj){ vis[ii][jj] =

2017-01-12 13:46:41 423

空空如也

空空如也

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

TA关注的人

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