原创 nyoj 24 Point game
/* 題意:輸入有t組 每組的n,m和n個數,問這n個數是否經過運算後是否和m相等,n個數的位置可調換 搜索大體思路:把n個數經過一次運算後話爲n-
原创 static詳解
static作用(修飾函數、局部變量、全局變量) 在C語言中,static的字面意思很容易把我們導入歧途,其實它的作用有三條。 (1)先來介紹它的第一條也是最重要的一條:隱藏。 當我們同時編譯多個文件時,所有未加static前綴的全局變
原创 poj 1231 The Alphabet Game
/* 題意:給出一些字母的座標,是否能把相同的字母放到同一個矩形中,使每個矩形都不重合,重合一個點也不行 2 兩組數據 3 2 K,P,K個字母,
原创 nyist 762 第k個互質數
/* 容斥原理:在計數時,必須注意無一重複,無一遺漏。爲了使重疊部分不被重複計算,人們研究出一種新的計數方法, 這種方法的基本思想是:先不考慮重疊的
原创 poj 3518 Prime Gap 二分查找下界和素數篩法
/* 題意:輸入有多組數據,每組數據一個n,如果n是素數,輸出0否則輸出離n最近的兩個素數的積,第100000個素數是1299709,所有的素數都在這個範圍內 思路:素數篩法加二分查找下界 */ #include<stdio.h> int
原创 樹鏈剖分 FZU 2082
#include<cstring> #include<cstdio> #include<algorithm> using namespace std; const int maxn = 50005; in
原创 HDU 3681 Prison Break
/* 給一個n*m的圖,F代表起點,G代表充電池,一個充電池只能用一次,但可以用多個充電池,只能把電池充到最大(原始的電量),可以走過不用,D不能走, 問的是把所有的Y走一遍的原始的電量是多少 dp+狀態
原创 hdu 1011 Starship Troopers
/* 樹形dp 題意: 給出一顆樹,每個節點都有敵人,消滅敵人後會給報酬,自己的士兵一個能消滅20個,從節點1開始,如果根節點消滅,子節點就不消滅 給出一個n表示有n個節點
原创 codeforces 520E Pluses everywhere
/* 題意:給出n和m表示有n個數字,可以在這些數字裏頭加m個+號計算所有可能的和 比如: 3 1 108 添加加號的可能 1+08 10+8 兩種的可能的和爲27 思路:對於每一個數位,枚舉包含該位的l
原创 POJ 1321 棋盤問題
#include<stdio.h> #include<string.h> int check(int a,int m) { int b=0; while(a>0) { if(a&1)
原创 hdu 2888 Check Corners
/* 題意:給出m,n代表給出長爲m寬爲n的矩陣,然後給出一個q代表查詢的次數,然後q行每行給出一個 r1, c1, r2, c2 且滿足(1 <= r1 <= r2 <= m, 1 <= c1 <= c2 <= n) 輸出這個矩形範圍內
原创 lucas定理的證明
http://baike.baidu.com/link?url=jJgkOWPSRMobN7Zk4kIrQAri8m0APxcxP9d-C6qSkIuembQekeRwUoEoBd6bwdidmoCRQB_dBklDffpzM_87iSP
原创 宏定義放在結構體裏
#include<stdio.h> struct node { #define Max(a,b) a>b?a:b//個人感覺宏定義放在結構體裏和放在放在最上面是沒有區別的,可能是爲了讀代碼方便
原创 TSP+dp+狀態壓縮的本質
/* dis[1][2]=1;dis[1][3]=3;dis[1][4]=6; dis[2][3]=2;dis[2][4]=5; dis[3][4]=3; 二進制從右往左依次代表的1-n,0代表沒有經過1代表經過了,比如3化成二進制爲11
原创 hdu 3001 Travelling
/* 題意:說一個人想遊玩n個城市,每個城市最多走兩次,問最短的距離 */#include<stdio.h> #include<string.h> #define MMax 2000000000 #de