這題昨天晚上花了我1個小時50多分鐘來搞,都沒有搞定。。後來看別人**,直接暴力列舉第乙個數的值來做。。最多1000*1000的複雜度。當時怎麼就沒想到呢?還有為啥我的方法不對呢。。
暴力方法**:
#include #includeview code#include
#include
#include
#define mod 1000000007
using
namespace
std;
#define n 1007
inta[n];
intmain()
if(cnt
}printf(
"%d\n
",mini);
tmp =now;
for(i=1;i<=n;i++)
}return0;
}
自己的做法:
做乙個參考陣列b,存放1,1+k,1+2k....1+(n-1)k,然後a,b兩陣列(a為原陣列)個元素相減,得出差值陣列cha,且將cha複製乙份給cha2,將cha2從大到小排序,得出差值大於0的最大連續相同的差值(差值小於0肯定不行,因為從1開始的b陣列是底線,比b還**明會小於0,與題意不符),以最大連續差值的這些數為基準,這些數不變,將其他數變為使整個陣列滿足ai+1-ai = k,此時形成標準陣列biao,然後比較a和biao,得出運算元和操作序列。但是就是不對,,不知道為啥,那位好心人如果發現這樣那裡不對歡迎向我指出,謝謝。
自己**:
#include #includeview code#include
#include
#include
#define mod 1000000007
using
namespace
std;
#define n 1007
inta[n],biao[n],cha[n],b[n],cha2[n];
int cmp(int ka,int
kb)int
main()
sort(cha2+1,cha2+n+1
,cmp);
int cnt = 1
;
int maxi = 0
;
for(i=2;i<=n;i++)}}
if(cnt >maxi)
for(i=1;i<=n;i++)
}for(j=i;j>=1;j--)
biao[j] = a[i]-k*(i-j);
for(j=i+1;j<=n;j++)
biao[j] = a[i]+k*(j-i);
cnt = 0
;
for(i=1;i<=n;i++)
printf(
"%d\n
",cnt);
for(i=1;i<=n;i++)
else
printf(
"+ %d %d\n
",i,biao[i]-a[i]);}}
}return0;
}
Codeforces 402B 恥辱的一題
這題昨天晚上花了我1個小時50多分鐘來搞,都沒有搞定。後來看別人 直接暴力列舉第乙個數的值來做。最多1000 1000的複雜度。當時怎麼就沒想到呢?還有為啥我的方法不對呢。暴力方法 include include include include include define mod 10000000...
9602 b402 合併果子
time limit 1 second memory limit 50 mb 在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n 1次合併...
CODEFORCES 535B 解題報告
仍然是水題,但是還是有可以說的地方。主要思路就是dfs可重排列。4,7組成的幸運數字,在n位數字的構造方式有2 n種,而資料是最多9位,則列舉只有512種,n 2的複雜度足矣。只列舉相應位數的4 7排列,前面的個數用2 n累加。只要遵循先選4再選7即可構造字典順序,然後查詢相應數。以下是 可直接ac...