1. ACM習題及答案下載
我有,你也可以自己下載的。
http://wenku..com/view/4e420f31b90d6c85ec3ac651.html
2. ACM:參加過ACM的大牛是不是練習時都要把每個演算法敲幾十幾百次呢
ACM比賽可以帶紙質資料,准備一份模板是很有必要的,所以演算法模版很重要,記住模版一定要權威,不要網上雜七雜八的拿來當模版,一份好的模板一定會對你的編程習慣和演算法實現打下良好的基礎。但是,ACM比賽的等級越高,模版的作用就越小,畢竟比賽不是套模板。
沒有人會把每個演算法敲幾百遍,大牛更加不會,敲十遍還記不住的話,一百遍也沒用的,重要的是對演算法本身的理解。如果你真正理解了演算法但寫不出來,那是你編程水平問題,這樣應該多看看大牛的代碼,多看看模板。
大牛不是演算法模板敲的多,而是對演算法理解的深刻並加上做的題目多,演算法就像數學公式,你記住公式難道就能考高分了嗎。重要的是運用啊,一個數學高手對於新學的公式他可以隨時推導出來,因為對公式真正理解啊,推的多了自然記住了,不是嗎。對於新手,先不要學演算法,先去poj做水題,就是簡單的題目沒什麼演算法,水題不要做太多,100題就差不多了。接下來就該系統的學習一下演算法了,《演算法導論》和《演算法藝術與信息學競賽》是我覺得必看的兩本書。另外,歷屆NOI國家隊選手的論文也是很有價值的,也屬於必看。接下來繼續去poj做題,多思考,做不出來就網路,google,poj做題的人非常多。做題可以查漏補缺,之前沒碰到過的 演算法都可能在題目中體現,碰到沒學過的演算法就網路學習,然後選一個好的放到你的演算法模板庫,poj做題1000以上想不成大牛都難!
我只想說大牛基本上都是這么過來的,當然不排除個別天才,不過我沒碰到過也沒聽過誰不做大量的題就能成為牛人的,畢竟天道酬勤。
3. 關於ACM的一道編程題
ve the optimization of resource allocation, punch equipment technology,
4. acm題stock
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
struct stock
{
long long x,p,m;
}a[100005];
struct cmp
{
bool operator()(const stock & a,const stock & b)const
{
return a.p < b.p;
}
};
int main()
{
int t,n;
long long ans;
stock temp;
cin>>t;
while(t--)
{
ans=0;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i].x>>a[i].p>>a[i].m;
priority_queue< stock,vector<stock>,cmp >q;
if(a[n-1].m>a[n-1].x)
{
ans+=a[n-1].p*a[n-1].x;
a[n-1].m-=a[n-1].x;
q.push(a[n-1]);
}
else
ans+=a[n-1].p*a[n-1].m;
for(int i=n-2;i>=0;i--)
{
while(a[i].x!=0)//今天還有股票未賣出
{
if(q.empty())//其後天無法賣,即必須今天賣
{
if(a[i].m>a[i].x)//以前天股票可以今天賣
{
ans+=a[i].p*a[i].x;
a[i].m-=a[i].x;
q.push(a[i]);
}
else//以前天股票無法今天賣
{ans+=a[i].p*a[i].m;}
a[i].x=0;//今天賣光了
}
else//其後天可以賣
{
if(a[i].p>q.top().p)//今天價格高於其後所有天
{
if(a[i].m>a[i].x)//以前天股票可以今天賣
{
ans+=a[i].p*a[i].x;
a[i].m-=a[i].x;
a[i].x=0;//今天賣光了
q.push(a[i]);
}
else if(a[i].m==a[i].x)//今天剛好可以賣完
{
ans+=a[i].p*a[i].x;
a[i].x=0;
}
else//今天賣不完
{
ans+=a[i].p*a[i].m;
a[i].x-=a[i].m;//還剩下這些股票
a[i].m=0;//今天已經無法賣了
a[i].p=0;//以後天低價出手了
}
}
else//今天價格低於或等於其後天
{
if(q.top().m>a[i].x)
{
ans+=q.top().p*a[i].x;
temp=q.top();
temp.m-=a[i].x;
q.pop();
q.push(temp);
a[i].x=0;
}
else if(q.top().m==a[i].x)
{
ans+=q.top().p*a[i].x;
a[i].x=0;
q.pop();
}
else
{
ans+=q.top().p*q.top().m;
a[i].x-=q.top().m;
q.pop();
}
}
}
}
}
cout<<ans<<endl;
}
return 0;
}
這是我的程序,wa了兩天了
5. acm各種題庫例題哪裡可以找到(C++) 我要題目+答案!謝謝學長~
6. acm題庫及答案
每年各個地方contest後,官方都會公布解決方案,測試數據等
acm.pku.e.cn
去北大oj,每道題目後面的souce都會標明題目來源,google一下一般就可以找到題目的contest官方了,一般都是國外的,所以網路不到,用google
找到contest的官方網站就可以下載題目以及解決方案,測試數據等!!!
比如 Central European 1996
http://contest.mff.cuni.cz/archive/ceeu1996/index.html
就可以下載試題以及答案
over!
7. acm競賽中每道題的限制運行時間是一樣的嗎
根據不同題目時間限制是不同的,不過一般的編譯時間是給夠的(因為現場賽出現過編譯超時),運行時間是題目標程運行時間的2-3倍。
8. 在ACM做題的時候,每個題目上面都有一個時間2s,或者是7000ms,怎麼根據你代碼的復雜性怎麼算你的代碼的時
這個,換算的方法當然是看對方主機的運行速度,一般就是正常速度,那麼:
時間限制1000ms時,
當n=1000時,O(n^2*lgn)級別的可以通過,O(n^3)一般就不行了
n=10000時,O(n^2)一般就會卡成TLE。當然也有奇葩的題,只能用n^2,最後700多ms涉險過關那種,看演算法的常數了
n=100時,O(n^3)妥妥的可以過,O(n^4)和n=10000的n^2一樣,看常數大小,不到萬不得已不建議嘗試,建議優化演算法
所以綜上,一般10^7級別是沒有問題的,10^8就很勉強了。數據范圍給到10^9的,我還從來沒見過O(n)的演算法,一般是O(lgn)。
9. ACM題目及測試數據
這兩個網站超好,練習練習。。。
http://acm.zju.e.cn/
http://acm.pku.e.cn/JudgeOnline/
會自動跟你測的
還有就是:
推薦一些題目,希望對參與ICPC競賽的同學有所幫助。
POJ上一些題目在
http://162.105.81.202/course/problemSolving/
可以找到解題報告。
《演算法藝術與信息學競賽》的習題提示在網上可搜到
一.動態規劃
參考資料:
劉汝佳《演算法藝術與信息學競賽》
《演算法導論》
推薦題目:
http://acm.pku.e.cn/JudgeOnline/problem?id=1141
簡單
http://acm.pku.e.cn/JudgeOnline/problem?id=2288
中等,經典TSP問題
http://acm.pku.e.cn/JudgeOnline/problem?id=2411
中等,狀態壓縮DP
http://acm.pku.e.cn/JudgeOnline/problem?id=1112
中等
http://acm.pku.e.cn/JudgeOnline/problem?id=1848
中等,樹形DP。
可參考《演算法藝術與信息學競賽》動態規劃一節的樹狀模型
http://acm.zju.e.cn/show_problem.php?pid=1234
中等,《演算法藝術與信息學競賽》中的習題
http://acm.pku.e.cn/JudgeOnline/problem?id=1947
中等,《演算法藝術與信息學競賽》中的習題
http://acm.pku.e.cn/JudgeOnline/problem?id=1946
中等,《演算法藝術與信息學競賽》中的習題
http://acm.pku.e.cn/JudgeOnline/problem?id=1737
中等,遞推
http://acm.pku.e.cn/JudgeOnline/problem?id=1821
中等,需要減少冗餘計算
http://acm.zju.e.cn/show_problem.php?pid=2561
中等,四邊形不等式的簡單應用
http://acm.pku.e.cn/JudgeOnline/problem?id=1038
較難,狀態壓縮DP,《演算法藝術與信息學競賽》中有解答
http://acm.pku.e.cn/JudgeOnline/problem?id=1390
較難,《演算法藝術與信息學競賽》中有解答
http://acm.pku.e.cn/JudgeOnline/problem?id=3017
較難,需要配合數據結構優化(我的題目^_^)
http://acm.pku.e.cn/JudgeOnline/problem?id=1682
較難,寫起來比較麻煩
http://acm.pku.e.cn/JudgeOnline/problem?id=2047
較難
http://acm.pku.e.cn/JudgeOnline/problem?id=2152
難,樹形DP
http://acm.pku.e.cn/JudgeOnline/problem?id=3028
難,狀態壓縮DP,題目很有意思
http://acm.pku.e.cn/JudgeOnline/problem?id=3124
難
http://acm.pku.e.cn/JudgeOnline/problem?id=2915
非常難
二.搜索
參考資料:
劉汝佳《演算法藝術與信息學競賽》
推薦題目:
http://acm.pku.e.cn/JudgeOnline/problem?id=1011
簡單,深搜入門題
http://acm.pku.e.cn/JudgeOnline/problem?id=1324
中等,廣搜
http://acm.pku.e.cn/JudgeOnline/problem?id=2044
中等,廣搜
http://acm.pku.e.cn/JudgeOnline/problem?id=2286
較難,廣搜
http://acm.pku.e.cn/JudgeOnline/problem?id=1945
難,IDA*,迭代加深搜索,需要較好的啟發函數
http://acm.pku.e.cn/JudgeOnline/problem?id=2449
難,可重復K最短路,A*。
可參考解題報告:
http://acm.pku.e.cn/JudgeOnline/showcontest?contest_id=1144
http://acm.pku.e.cn/JudgeOnline/problem?id=1190
難,深搜剪枝,《演算法藝術與信息學競賽》中有解答
http://acm.pku.e.cn/JudgeOnline/problem?id=1084
難,《演算法藝術與信息學競賽》習題
http://acm.pku.e.cn/JudgeOnline/problem?id=2989
難,深搜
http://acm.pku.e.cn/JudgeOnline/problem?id=1167
較難,《演算法藝術與信息學競賽》中有解答
http://acm.pku.e.cn/JudgeOnline/problem?id=1069
很難
三. 常用數據結構
參考資料:
劉汝佳《演算法藝術與信息學競賽》
《演算法導論》
線段樹資料:
http://home.ustc.e.cn/~zhuhcheng/ACM/segment_tree.pdf
樹狀數組資料
http://home.ustc.e.cn/~zhuhcheng/ACM/tree.ppt
關於線段樹和樹狀數組更多相關內容可在網上搜到
後綴數組資料
http://home.ustc.e.cn/~zhuhcheng/ACM/suffix_array.pdf
http://home.ustc.e.cn/~zhuhcheng/ACM/linear_suffix.pdf
推薦題目
http://acm.pku.e.cn/JudgeOnline/problem?id=2482
較難,線段樹應用,《演算法藝術與信息學競賽》中有解答
http://acm.pku.e.cn/JudgeOnline/problem?id=1151
簡單,線段樹應用矩形面積並,《演算法藝術與信息學競賽》中有解答
http://acm.pku.e.cn/JudgeOnline/problem?id=3225
較難,線段樹應用,可參考解題報告
http://acm.pku.e.cn/JudgeOnline/showcontest?contest_id=1233
http://acm.pku.e.cn/JudgeOnline/problem?id=2155
難,二維樹狀數組。
http://acm.pku.e.cn/JudgeOnline/problem?id=2777
中等,線段樹應用。
http://acm.pku.e.cn/JudgeOnline/problem?id=2274
難,堆的應用,《演算法藝術與信息學競賽》中有解答
http://acm.zju.e.cn/show_problem.php?pid=2334
中等,左偏樹,二項式堆或其他可合並堆的應用。
左偏樹參考http://www.nist.gov/dads/HTML/leftisttree.html
二項式堆參見《演算法導論》相關章節
http://acm.pku.e.cn/JudgeOnline/problem?id=1182
中等,並查集
http://acm.pku.e.cn/JudgeOnline/problem?id=1816
中等,字典樹
http://acm.pku.e.cn/JudgeOnline/problem?id=2778
較難,多串匹配樹
參考:http://home.ustc.e.cn/~zhuhcheng/ACM/zzy2004.pdf
http://acm.pku.e.cn/JudgeOnline/problem?id=1743
難,後綴數組
http://acm.pku.e.cn/JudgeOnline/problem?id=2774
較難,最長公共子串,經典問題,後綴數組
http://acm.pku.e.cn/JudgeOnline/problem?id=2758
很難,後綴數組
可參考解題報告
http://acm.pku.e.cn/JudgeOnline/showcontest?contest_id=1178
http://acm.pku.e.cn/JudgeOnline/problem?id=2448
很難,數據結構綜合運用
四.圖論基礎
參考資料:
劉汝佳《演算法藝術與信息學競賽》
《演算法導論》
《網路演算法與復雜性理論》謝政
推薦題目:
http://acm.pku.e.cn/JudgeOnline/problem?id=2337
簡單,歐拉路
http://acm.pku.e.cn/JudgeOnline/problem?id=3177
中等,無向圖割邊
http://acm.pku.e.cn/JudgeOnline/problem?id=2942
較難,無向圖雙連通分支
http://acm.pku.e.cn/JudgeOnline/problem?id=1639
中等,最小度限制生成樹,《演算法藝術與信息學競賽》中有解答
http://acm.pku.e.cn/JudgeOnline/problem?id=2728
中等,最小比率生成樹,《演算法藝術與信息學競賽》中有解答
http://acm.pku.e.cn/JudgeOnline/problem?id=3013
簡單,最短路問題
http://acm.pku.e.cn/JudgeOnline/problem?id=1275
中等,差分約束系統,Bellman-Ford求解,《演算法藝術與信息學競賽》中有解答
http://acm.pku.e.cn/JudgeOnline/problem?id=1252
簡單,Bellman-Ford
http://acm.pku.e.cn/JudgeOnline/problem?id=1459
中等,網路流
http://acm.pku.e.cn/JudgeOnline/problem?id=2391
較難,網路流
http://acm.pku.e.cn/JudgeOnline/problem?id=1325
中等,二部圖最大匹配
http://acm.pku.e.cn/JudgeOnline/problem?id=2226
較難,二部圖最大匹配
http://acm.pku.e.cn/JudgeOnline/problem?id=2195
中等,二部圖最大權匹配
KM演算法參考《網路演算法與復雜性理論》
http://acm.pku.e.cn/JudgeOnline/problem?id=2516
較難,二部圖最大權匹配
http://acm.pku.e.cn/JudgeOnline/problem?id=1986
中等,LCA(最近公共祖先)問題
參考Tarjan's LCA algorithm 《演算法導論》第21章習題
http://acm.pku.e.cn/JudgeOnline/problem?id=2723
較難,2-SAT問題
參考:http://home.ustc.e.cn/~zhuhcheng/ACM/2-SAT.PPT
http://acm.pku.e.cn/JudgeOnline/problem?id=2749
較難,2-SAT問題
http://acm.pku.e.cn/JudgeOnline/problem?id=3164
較難,最小樹形圖
參考《網路演算法與復雜性理論》中朱-劉演算法
五.數論及組合計數基礎
http://acm.pku.e.cn/JudgeOnline/problem?id=1811
簡單,素數判定,大數分解
參考演算法導論相關章節
http://acm.pku.e.cn/JudgeOnline/problem?id=2888
較難,Burnside引理
http://acm.pku.e.cn/JudgeOnline/problem?id=2891
中等,解模方程組
http://acm.pku.e.cn/JudgeOnline/problem?id=2154
中等,經典問題,波利亞定理
http://cs.scu.e.cn/soj/problem.action?id=2703
難,極好的題目,Burnside引理+模線性方程組
http://acm.pku.e.cn/JudgeOnline/problem?id=2764
較難,需要數學方法,該方法在《具體數學》第七章有講
http://acm.pku.e.cn/JudgeOnline/problem?id=1977
簡單,矩陣快速乘法