/*莫名其妙就做了集訓隊的題 不過..資料好水
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大老闆,想知...