自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Collider

愿所有刷过的题都成为你比赛中信手拈来的水题.

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

原创 POJ3009-Curling 2.0

外星人打冰球的故事。这是一道深搜的题,与一般的题不同之处在于它并不是走一格,而是走一条直线路径。#include #include #include using namespace std;const int MAXN = 20;int map[MAXN+2][MAXN+2];int dx[4] = {1, 0, -1, 0};int dy[4] = {0, 1,

2016-03-31 21:22:20 460

原创 POJ1979-Red and Black

图的深搜。#include #include const int MAXN = 20;char map[MAXN+2][MAXN+2];int cnt = 0;int w, h;void Dfs(int x, int y){ cnt++; map[x][y] = '#'; if (x - 1 >= 0 && map[x-1][y] == '.

2016-03-31 17:02:49 266

原创 POJ3253-Fence Repair

将题目想成一棵二叉树,一块木板为父节点,切割后的两段长度为它的子节点。如此切割的开销为父节点木板对应的长度。总开销为所有含有子节点的父节点对应长度只和。等于这棵树的各叶节点乘以节点的深度。因此最短的板应是深度最大的叶子节点之一。最短的板与次短的板的节点是兄弟节点。将l按大小顺序排序,最短的板l1和次短的板l2是由长度为(l1+l2)的板得到的。递归地将这n-1块木板的问

2016-03-31 16:00:06 390

原创 POJ3617-Best Cow Line

给定长度为N的字符串S,要求构造一个字典序最小的字符串T。#include const int MAXN = 2000;char s[MAXN+2];char t[MAXN+2];int main(){ int n; scanf("%d", &n); getchar(); int i; for (i = 0; i < n; i+

2016-03-31 09:55:21 267

原创 POJ2386-Lake Counting

#include const int MAXN = 100;char field[MAXN+2][MAXN+2];int n, m;void Dfs(int x, int y){ if (field[x][y] == 'W') { field[x][y] = '.'; for (int dx = -1; dx <= 1; dx

2016-03-30 16:47:41 283

原创 POJ1852-Ants

买了本《挑战程序设计竞赛》,打算静下心好好啃完一本书。“事实上,可以知道两只蚂蚁相遇后,当它们保持原样交错而过继续前进也不会有任何问题。”#include #include #include using namespace std;const int MAXN = 1000000;int loc[MAXN];int main(){ int t; scan

2016-03-30 15:34:49 244

原创 BestCoder Round #77 (div.2)

1001单元素集合所有子集异或后是它本身,其他集合异或后答案都为0;#include int ctn[1002];int main(){ int t; scanf("%d", &t); for (int i = 0; i < t; i++) { int n; scanf("%d", &n);

2016-03-27 14:22:37 274

原创 数论-快速幂

快速幂算法通过递归减小幂运算的规模。long int Pow(long int X, unsigned int N){ if (N == 0) { return 1; }//    if (N == 1) {//        return X;//    } if (!(N % 2)) { //N为偶数

2016-03-25 20:22:10 275

原创 排序-快速排序

快速排序顾名思义即是很快的排序(妈的智障....)快速排序的版本很多。取中快排,选取中间值将数组划分为左右两部分。void midqsort(int a[], int left, int right){ int i = left, j = right; int mid = a[(left + right) / 2]; int temp; wh

2016-03-25 15:21:58 285

原创 数论-斐波那契数列

斐波那契数列可以由递归,迭代以及数学计算得到。#include #include using namespace std;int f[1000];int Fib1(int n){ if (n <= 1) { return n; } else return Fib1(n-1)+Fib1(n-2);}int Fib2(i

2016-03-25 14:13:05 332

原创 数论-素数判定

用于快速判断一个数是否为素数。bool isPrime(int num){    if (num == 2 || num == 3)         return true;    if (num % 6 != 1 && num % 6 != 5)         return false;        for (int i = 5; i * i <= num; i += 6

2016-03-25 14:03:48 387

原创 简单数论-Gcd

欧几里德算法是最早的算法,用辗转相除法求最大公因数。#include using namespace std;//Gcd(m, n) == Gcd(n, m mod n)//Gcd(m, 0) == mint Gcd(int m, int n){    while (n != 0) {        int r = m % n;        m = n;     

2016-03-25 14:01:22 537

原创 埃拉托色尼(Eratosthenes)筛法

筛选法求素数#include #include using namespace std;const int MAXN = 1200;int A[MAXN];int L[MAXN];//sieve prime listvoid Sieve(int n){    int p;    for (p = 2; p < n; p++)        A[p] = p;  

2016-03-25 13:57:46 790

原创 HDUOJ2553-N皇后问题

对于N皇后问题首先的代码#include int IsLegal[3][25];int cnt = 0;int cmd;void Dfs(int n){ if (n == cmd + 1) cnt++; else { for(int i = 1; i <= cmd; i++) { if(IsLegal[0][

2016-03-24 21:33:14 446

原创 HDUOJ1042-N!

大数阶乘问题#include #include using namespace std;const int MAXN = 40001;int a[MAXN] = {0};void BigFactorial(int m){ int i, j; int carry; int temp; a[MAXN - 1] = 1; for (

2016-03-23 22:02:25 308

原创 Dfs回溯-八皇后问题

八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。将棋盘的每一行作为搜索树的节点。建立一个数组IsLegal[3][18]分别记录列,主对角线,辅对角线的情况,判段皇后的位置是否合法。主对角线方向上

2016-03-23 21:26:50 504

原创 POJ1164-The Castle

将问题的各状态之间的转移关系描述为一个图,则深度优先搜索遍历整个图的框架为:Dfs(V){ if (v访问过) { return; } 将v标记为访问过; 对和v相邻的每个点u:Dfs(u);}int main(){ while (在图中能找到未访问过的点k) { Dfs(k); }}Poj

2016-03-20 13:13:57 604

空空如也

空空如也

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

TA关注的人

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