就是斷斷續續刷了一些銀組的題,雖說真的有點水,因為這些題大多是簡單轉化一下模型就可以了,但還是有一些啟示吧
bzoj1618
完全揹包的方程要理解好
1 #include2 #include3 #include4完全揹包using
namespace
std;
5const
int maxh=50005;6
const
int maxn=105;7
const
int inf=3e8;
8int
weight[maxn];
9int
cost[maxn];
10int
n,h;
11int f[maxh+5000
];12
intmain()//
理解清楚方程...一次加一件直到無法取為止
22int ans=inf;
23for (int i=h;i<=h+5000;i++)
24 ans=min(ans,f[i]);
25 printf("
%d\n
",ans);
26return0;
27 }
bzoj1623
要簡單分析一下奶牛車速大小與順序前後的關係
重點在於看出把速度較小的奶牛放在前面會使答案盡可能大,貪心地排個序即可
bzoj1619
有時候會因為簡化了不同程度上問題的樣例而忽略了某些需要在**中注意的點
灌水要從最高點開始
bzoj1635
這題有點意思。顯然我們可以用維護差分序列的思想去做這道題。一開始沒細想直接wa了兩發,實際上有很多細節還是值得體味的
1.可以知道區間是不會重合的,頂多端點重合
2.知道第1條的作用就是,我們可以拋掉h[b]>=h[a]這個條件,因為一開始del[a]=del[b]=0,而區間又是不重合的
3.需要判重!!因為區間雖然不能重合但是它可以重複啊!!
1 #include2 #include3 #include4 #include5view codeusing
namespace
std;
6const
int maxn=10200;7
const
int maxh=1000100;8
struct
lnum[maxn];
11int del[maxn];//
差分序列
12int
n,m,h,i,a,b;
13bool
cmp(l a,l b)
16int
main()
22 sort(num+1,num+1+m,cmp);
23for (int i=1;i<=m;i++)
24if (i==1||num[i].l!=num[i-1].l||num[i].r!=num[i-1
].r)
27for (int i=1;i<=n;i++)
28 del[i]=del[i-1]+del[i];
29int t=h-del[i];
30for (int i=1;i<=n;i++)
31 printf("
%d\n
",del[i]+t);
32return0;
33 }
一些動規水題
開學以來的乙個半月做了不少動規 水 題,那就寫寫題解吧。1.vijos 1059 積木城堡 一開始看到這是浙江省選題頓時嚇尿。但其實是大水題 主要體現在資料弱 用揹包求出每個城堡能達到的高度,取所有城堡都能達到的最大高度即可。具體一點 用 f i,j,k 表示對於第 i 個城堡,用前 j 個積木能否...
做過的一些水題的總結
在藍橋杯決賽的前一天,我整理了下這個部落格,從一月份左右到現在現在一共是五十四篇,艾瑪我寫居然這麼多了,加上去年暑假開始,也差不多一年了。至今的水平也是非常一般,所以做的都是入門級別的水題。回首一年之前,從台州oj到藍橋杯題庫到zoj到poj,也是一段有趣的歷程很多題目的難度應該屬於 熟練語言 級別...
USACO 完結的一些感想
其實日期沒有那麼近啦 只是我偶爾還點進去造成的,導致我沒有每一章刷完的紀念日了 但是全刷完是今天啦 講真,題很鍛鍊思維能力,usaco保持著一貫獵奇的題目描述,以及盡量不用高階演算法就完成的題解 例如用暴搜加優化代替插頭dp 但是第6章!我就說第6章!為什麼大賽的實踐,幾乎全是暴搜!是為了傳達給我們...