思路分析://感謝寫文博主
思路:相信大多數人和我一樣在比賽的時候把這題想的太簡單了_(:з」∠)_ 這題和去年的最後一題很類似,就是分類討論,去年放在了最後一題,今年在倒數第二題,說明難度不算太難,分析出來了就會覺得emmm好坑……那麼下面開始分析,我是按照符號的個數和負數的個數來分類討論的:
①負號個數為0,那麼沒有辦法只能全加
②負號個數等於負數個數,那麼減去所有負數就能得到最大結果
③負號個數小於負數個數,可以通過加號的補充來達到上一種情況的效果的
比如(6 5 -4 -3 -2 -1),有1個減號,那麼可以變成 6 + 5 - ( -4 + -3 + -2 + -1 ) ;有2個減號,那麼可以變成 6 + 5 - -4 - ( -3 + -2 + -1 ) ;有3個減號,那麼可以變成6 + 5 - -4 - -3 - ( -2 + -1 )
④負號個數大於負數個數,那麼先把負數都減掉,然後再減較小的正數
我的**:
1 #include2 #include3 #include4 #include5 #include6
using
namespace
std;
7int
n,lenth;
8int m;//
減號個數
9int minus_num;//
負數的個數
10const
int maxn = 200005;11
intaim[maxn];
1213
intsolve()
1422
if(m<=minus_num)
2328 ans=-ans;
29for(int i=minus_num;i)
3033
return
ans;34}
35if(m>minus_num)
3641 ans=-ans;
42for(int i=minus_num;i)
4346
for(int i=m;i)
4750
return
ans;51}
52return0;
53}5455
intmain()
5666 sort(aim,aim+lenth);
67 printf("
%d\n
",solve());
68return0;
69 }
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #include11 #include
12using
namespace
std;
13long
long pos[100000]=;
14long
long neg[100000]=;
1516
intmain()
1731
if(m==0)//
負號個數為0
32 cout33else
if(m//
負號個數小於負數個數 34
39else
//負號個數大於負數個數
4048
return0;
49 }
第十屆藍橋杯省賽C B組 組隊
試題 a 組隊 本題總分 5 分 問題描述 作為籃球隊教練,你需要從以下名單中選出 1 號位至 5 號位各一名球員,組成球隊的首發陣容。每位球員擔任 1 號位至 5 號位時的評分如下表所示。請你計算首發陣容 1 號位至 5 號位的評分之和最大可能是多少?如果你把以上文字複製到文字檔案中,請務必檢查複...
第十屆藍橋杯省賽C B組 組隊
本題總分 5 分 問題描述 作為籃球隊教練,你需要從以下名單中選出 1 號位至 5 號位各一名球員,組成球隊的首發陣容。每位球員擔任 1 號位至 5 號位時的評分如下表所示。請你計算首發陣容 1 號位至 5 號位的評分之和最大可能是多少?如果你把以上文字複製到文字檔案中,請務必檢查複製的內容是否與文...
2019第十屆藍橋杯 I 胖子迷宮
題目意思 給你乙個n m的迷宮,能走,障礙物,乙個胖子一開始在3,3,體積為5 5 不過胖子走迷宮的目的是為了 給你乙個時間k,當到達時間k時,胖子餓瘦了變成3 3,當到達時間2 k時,更瘦了變成1 1 題目要求到達 n 2,m 2 這個點所需的最短時間。n,m 300,解決思路,參考hdu1026...