今天上午看了有關單調佇列的課件,明天一起整理。
下午做了練習賽,在這兒寫一下ac的三道題。
b題,很水的一道題,求數字金字塔中經過數字的最大和。
ac**及註解如下:
#include
using namespace std;
int a[351][351];
int main()
for(int i=n-1;i>=1;i--)//
倒序上去
}cout<}d
題是求n
個數中最大素因子所在的那個數。
**如下:
#include
#include
#include
using namespace std;
int a[20001]=;
int main()
}int n;
int t;
while(cin>>n&&n!=-1)//wa
兩次才知道這個題要求多組輸入
}cout<}}
e題和之前做的棋盤走馬的題類似,有乙個
5*5的棋盤,每個格仔上有乙個數,從乙個格仔出發,走五步(每步只能到達相鄰的格仔),形成乙個六位數(可以有前導
0),問一共可以形成多少種不同的六位數。
這個題最開始是套路的之前那個題,結果發現自己不知道怎樣判斷所有六位數是否相同,試了幾種方法都沒能表達出來,搜了題解發現有使用
set去重複的,用上之後就
ac了。
**及註解如下:
#include
#include
#include
#include
#include
using namespace std;
char map[6][6],path[10];
int u[4]=,
v[4]=;//
四個方向
set cnt;//set
去重複string tmp;
void dfs(int x,int y,int step)
//儲存
6位數到
tmpcnt.insert(tmp);//
無重複的放入
cntreturn;
}for(int i=0;i<4;i++)
}int main()
另外三道題有了思路但還沒來得及寫,晚上再看一下吧。
以上~
8 1 集訓日記
今天看了有關容斥原理的幾篇部落格。容斥原理的基本思想是 先不考慮重疊的情況,把所有物件的數目求出,然後再把計數時重複計算的數目排斥出去,使得計算的結果既無遺漏又無重複。首先是乙個經典的互素問題 hdoj 4135 co prime 題目大意是 給定a,b,n,求區間 a,b 中與n互素的數的個數。思...
8 4 集訓日記
今天看了有關組合數學的一些內容。首先,排列組合的 為 ll c ll n,ll m ll a ll n,ll m 一道組合數學 位運算的題,hdoj4810 wall painting 題目大意 有一位畫家,有 n種顏料,給出 n種顏料的值。然後在1到 n天中,他每天都會選擇相應天數的顏料數進行混合...
8 9 集訓日記
今天才知道好像要發好幾十篇部落格之後才不用審核 今天把數論的課件看了看,算是再複習一遍,掌握的更好吧。都是之前學過的內容,只是有些記不清的,也沒什麼好寫的,這裡整理一下位運算的課件吧。位運算 一 位運算子及規則1 按位與 全真則真 一假則假2 按位或 一真則真3 按位異或 同則假 異則真4 左移5 ...