Posted on 2010-08-09 22:22
MiYu 閱讀(432)
評論(0) 編輯 收藏 引用 所屬分類:
ACM ( 組合 ) 、
ACM ( 博弈 )
MiYu原創, 轉帖請注明 : 轉載自 ______________白白の屋
題目地址:
http://acm.hdu.edu.cn/showproblem.php?pid=2149
題目描述:
Public Sale
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 719 Accepted Submission(s): 419
Problem Description
雖然不想,但是現實總歸是現實,Lele始終沒有逃過退學的命運,因為他沒有拿到獎學金。現在等待他的,就是像FarmJohn一樣的農田生涯。
要種田得有田才行,Lele聽說街上正在舉行一場別開生面的拍賣會,拍賣的物品正好就是一塊20畝的田地。于是,Lele帶上他的全部積蓄,沖往拍賣會。
后來發現,整個拍賣會只有Lele和他的死對頭Yueyue。
通過打聽,Lele知道這場拍賣的規則是這樣的:剛開始底價為0,兩個人輪流開始加價,不過每次加價的幅度要在1~N之間,當價格大于或等于田地的成本價 M 時,主辦方就把這塊田地賣給這次叫價的人。
Lele和Yueyue雖然考試不行,但是對拍賣卻十分精通,而且他們兩個人都十分想得到這塊田地。所以他們每次都是選對自己最有利的方式進行加價。
由于Lele字典序比Yueyue靠前,所以每次都是由Lele先開始加價,請問,第一次加價的時候,
Lele要出多少才能保證自己買得到這塊地呢?
Input
本題目包含多組測試,請處理到文件結束(EOF)。每組測試占一行。
每組測試包含兩個整數M和N(含義見題目描述,0<N,M<1100)
Output
對于每組數據,在一行里按遞增的順序輸出Lele第一次可以加的價。兩個數據之間用空格隔開。
如果Lele在第一次無論如何出價都無法買到這塊土地,就輸出"none"。
Sample Input
4 2
3 2
3 5
Sample Output
1
none
3 4 5
題目分析:
簡單的Bash 博弈. 按題意控制好 輸出 就行了 , 不清楚請點擊
博弈入門
代碼如下:
MiYu原創, 轉帖請注明 : 轉載自 ______________白白の屋
#include <iostream>
int main ()
{
int n,m;
while ( scanf ( "%d%d", &m, &n ) != EOF )
{
if ( m % ( n + 1 ) == 0 )
{
puts ( "none" );
}
else
{
if ( n >= m )
{
for ( int i = m; i <= n; ++ i )
{
printf ( i == m ? "%d" : " %d",i );
}
putchar ( '\n' );
}
else
{
printf ( "%d\n", m % ( n + 1 ) );
}
}
}
return 0;
}