原创 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