原创 USACO S1.5 PrimePalindromes

題目大意:給定a,b(5<=a,b<=100,000,000),輸出[a,b]區間的迴文素數. 思路:先找出區間的迴文數.因爲以偶數或5開頭的,或位數爲偶數的迴文數(除11外)的不是素數.所以查找回文數時剪枝. 再對查找的迴文數判斷是

原创 POJ 1118+2606+2780 (求平面上同一條直線的最多點數)

題目大意:給出平面上若干點,求屬於同一條的直線的最多點數。   思路:分別求出其中一點與其它點的直線的斜率,進行排序,如果斜率相同則同一條直線。   注意:一開始寫的時候分別把所有點與其他所有點的斜率都算了,結果超時。其實只要算與後面的所

原创 關於負數求餘(2個原則)

a%b=c  (b!=0) 1>餘數c的符號同被除數a. 2>餘數c的絕對值小於除數b,即 |c|<|b|.   如 (-10)%(-20)=-10      (-10)%(20)=-10       (10)%(-20)=10.

原创 (轉)數組名和指針的區別

原文地址:http://blog.sina.com.cn/s/blog_49e22ee80100a6qa.html   魔幻數組名 請看程序(本文程序在WIN32平臺下編譯): 1. #include <iostream.h>2. in

原创 hdoj 1010 Tempter of the Bone(深搜剪枝)

題目大意:地圖由"S""X""D""."組成,"X":wall  ,".":block, 問是否能從S出發在第T秒鐘剛好到達D。 思路:深搜,注意剪枝。          剪枝一:block數應該大於等於T,且大於需要走的最少步數。T應該

原创 平面切分空間

n個點最多把直線分成C(n,0)+C(n,1)份; n條直線最多把平面分成C(n,0)+C(n,1)+C(n,2)份; n個平面最多把空間分成C(n,0)+C(n,1)+C(n,2)+C(n,3)=(n³+5n+6)/6份; n個空間最

原创 關於取整 四捨五入

函數名: ceil   功 能: 向上舍入   用 法: double ceil(double x);     包含於頭文件:math.h   函數名: floor   功 能: 向下舍入   用 法: double floor(doub

原创 POJ 1113 WALL(凸包-計算幾何)

題目大意:給出城堡的若干點,要求在其周圍建圍牆,使距離城堡>=L,並使長度最短。 思路: 求出若干點的凸包,每個邊平行向外延伸L,斷開處用圓弧連接,圓弧的端點連接原凸包頂點,則分別與兩邊垂直,則圓心角與內夾角互補。 設凸包爲n邊形,則凸包

原创 POJ 3264 Balanced Lineup(RMQ 線段樹)

題目大意:RMQ問題。   RMQ (Range Minimum/Maximum Query)問題是指:對於長度爲n的數列A,回答若干詢問RMQ(A,i,j)(i,j=n),返回數列A中下標在i,j裏的最小(大)值,也就是說,RMQ問題是

原创 hdoj 1496 Equations (HASH)

題目大意:方程 a*x1^2+b*x2^2+c*x3^2+d*x4^2=0         a,b,c,d的範圍爲[-50,50] ,     x1,x2,x3,x4的範圍爲[-100,100].        現給出a,b,c,d,

原创 POJ 3468 A Simple Problem with Integers (線段樹)

題目大意:給一序列,對子序列的每個數進行增量,查詢某子序列的和。   思路:建立一線段樹,節點保存區間左右端點,區間插入的和,區間的增量(必須滿足區間吻合),左右孩子。   增量的時候注意在往下一個節點查找的同時,必須把增量累加到大的區間

原创 hdoj 1231(最大連續子序列)

題目大意:在一序列求最大連續子序列。輸出最大連續子序列的和與其第一個數與最後一個數。若和爲負數,輸出0,與原序列的第一個數和最後一個數。   思路: (1)  b[] 保存以a[i]爲結尾的最大子序列的第一個數。 a[i]=max(a[

原创 hdoj 2084(數塔)

#include <iostream> using namespace std; int a[5100]; int main() { int N; int f,sum,i,j,t; scanf("%d",&N); while (N

原创 poj 1088 滑雪(DP)

題目大意:滑雪,從任意點開始,只能滑向高度遞減的,求最長長度。 思路:dp[x][y]保存從(x,y)出發的能最長長度。   其中的遞歸搜索會不會出現循環呢? 答案是不會的,因爲只能往高度減小的方向,所以只能往一個方向,不可能反向回來再遞

原创 hdoj 1753 大明A+B (大數)

題目大意:給出不超過400位的正小數a和b,求a+b。 思路:分整數部分與小數部分分別做加法。注意小數部分到整數部分的進位。          i,j保存小數點位置或整數長度。需判斷是否爲純整數。          注意最簡形式最多隻能簡