國家集訓隊2011 種樹 神貪心

2022-05-15 18:07:35 字數 1880 閱讀 6078

/*

莫名其妙就做了集訓隊的題 不過..資料好水

codevs 1342 哈哈哈亂搞85

貪心的(好像有bug2333)照起點和終點

然後dp搞答案 這個應該很簡單的

要滾一下陣列

同桌打的暴力dp 55好像 思路一樣的

就是省去了那個正確性不一定的貪心

*/#include

#include

#define maxn 200010

using

namespace

std;

int n,m,f[2][maxn][2

],a[maxn],c[maxn],mx,p;

intinit()

while(s>='

0'&&s<='9')

return x*f;

}int min(int x,int

y)int max(int x,int

y)int

main()

for(int i=1;i<=n;i++)

a[i]=init();

a[0]=a[n];

for(int i=1;i<=n;i++)

if(a[i]-a[i-1]>mx)

for(int i=1,x=p;i<=n;i++,x++)

f[0][0][0]=0

;

for(int i=1;i<=n;i++)

for(int j=0;j<=x;j++)

}printf(

"%d\n

",f[n&1][m][0

]);

return0;

}

/*

上面那個亂搞的貪心+dp似乎有漏洞

但是資料略水 也可能是能證明他正確

懶得證了 說說正解吧

神貪心題 orz想出正解的

首先如果不限制相鄰的不能種 那就easy了

那怎麼保證選了之後邊上的也不能選呢

那就刪了嘍

那又有個問題 萬一兩邊的和比中間那個大咋辦

很神奇的做法 刪了兩邊的之後 把中間的改成a+c-b

就是兩邊的權值和減去中間的

這樣我們在選這個新的的時候 就相當於選了兩邊的兩個

並且保證了左邊的左邊和右邊的右邊不選刪了

還有個很好的性質就是 選中間那個和選新構造的那個

相當於選了兩次 和選兩邊的完全一樣

嗯 非常好啊

然後搞個鍊錶 再搞個堆

o(mlogn)

*/#include

#include

#include

#define maxn 200010

using

namespace

std;

intn,m,a[maxn],l[maxn],r[maxn],ans;

bool

f[maxn];

struct

node

};priority_queue

q;int

init()

while(s>='

0'&&s<='9')

return x*f;

}int min(int x,int

y)int max(int x,int

y)int

main()

for(int i=1;i<=n;i++));

l[i]=i-1;r[i]=i+1

; }

l[1]=n;r[n]=1

;

while(m--));

}printf(

"%d\n

",ans);

return0;

}

國家集訓隊2011 種樹 解題報告

題目 a城市有乙個巨大的圓形廣場,為了綠化環境和淨化空氣,市 決定沿圓形廣場外圈種一圈樹。園林部門得到指令後,初步規劃出n個種樹的位置,順時針編號1到n。並且每個位置都有乙個美觀度ai,如果在這裡種樹就可以得到這ai的美觀度。但由於a城市土壤肥力欠佳,兩棵樹決不能種在相鄰的位置 i號位置和i 1號位...

P1792 國家集訓隊 種樹

題目描述 a城市有乙個巨大的圓形廣場,為了綠化環境和淨化空氣,市 決定沿圓形廣場外圈種一圈樹。園林部門得到指令後,初步規劃出n個種樹的位置,順時針編號1到n。並且每個位置都有乙個美觀度ai,如果在這裡種樹就可以得到這ai的美觀度。但由於a城市土壤肥力欠佳,兩棵樹決不能種在相鄰的位置 i號位置和i 1...

happiness 國家集訓隊2011 吳確

2011中國國家集訓隊命題答辯 高一一班的座位表是個n m的矩陣,經過乙個學期的相處,每個同學和前後左右相鄰的同學互相成為了好朋友。這學期要分文理科了,每個同學對於選擇文科與理科有著自己的喜悅值,而一對好朋友如果能同時選文科或者理科,那麼他們又將收穫一些喜悅值。作為計算機競賽教練的scp大老闆,想知...