***//時間匆忙,先把自己**弄上明天考完再做詳細題解和補剩下的題***
昨天組長在報告上說我題解認真,感到十分愧疚,來補題解,所以抓緊來補題解
**a.b.c
d - eat candies
讀懂題很容易理解, 先取最大的, 然後如果最大的值大於另外兩個的和, 則最大天數等於另外兩個的和, 否則取另外兩個和與最大天數差值, 除於2後加上最大值即可
#include
#include
using
namespace std;
int a, b, c;
int n;
intmain()
if(a < c)
if(a > b + c)
printf
("%d"
, b + c)
;else
printf
("%d"
, a +
(b + c - a)/2
);if(n)
printf
("\n");
}}
e-由你來決定怎麼頒獎
先把重複數量挨個計數即可, 然後讓第乙個數的數量為金牌數量, 然後開始累加大於金牌數量後為銀牌數量, 同理得到銅牌數量, 此時判斷是否總數大於一半, 符合題意後繼續加到恰好小於一半, 因為前面都是遍歷, 所以最後判斷後輸出。
當時我是邊計數邊累加, 弄得有點亂了沒做出來
#include
#include
#include
#include
using
namespace std;
int a[
1000050];
int b[
1000000];
int n;
int t;
intmain()
int sum1 = b[0]
, sum2 =
0, sum3 =0;
int p =1;
while
(sum2 <= sum1) sum2 +
= b[p ++];
while
(sum3 <= sum1) sum3 +
= b[p ++];
if(sum1 < sum2 && sum1 < sum3 && sum1 + sum2 + sum3 <= k)
else
printf
("0 0 0");
if(t)
printf
("\n");
}}
f - xorxor
理解亦或含義就能做出來了, 但是我當時沒事看博弈論的時候就是看見亦或不知道啥意思就沒看。。。
#include
#include
#include
#include
using
namespace std;
int a[
100050];
int n;
int t;
intmain()
printf
("%d\n"
, sum);}
return0;
}
g - 0011
讀完題後可以知道, 每次插入0都在1的前面, 所以從頭到尾0的數量大於等於1
#include
#include
#include
#include
using
namespace std;
bool fff;
intmain()
if(a[i]
=='0'
) sum1 ++
;else sum2 ++;if
(sum1 < sum2)}if
(fff)
printf
("no\n");
else
sum1 =0;
sum2 =0;
fff =
false;}
return0;
}
h - perfect string
先判斷有木有連續字母相同, 沒有的話直接新增字母輸出即可
#include
#include
#include
#include
using
namespace std;
bool fff;
intmain()
if(a[i]
=='?'
)else
if(i !=
0&& i == p -1)
else
if(i ==
0&& i != p -1)
else
if(i ==
0&& i == p -
1) a[i]
='a';}
}if(fff)
printf
("-1");
else
printf
("%s"
, a);if
(t)printf
("\n");
fff =
false;}
return0;
}
i - 十進位制中的二進位制
暴力打表
#include
#include
#include
#include
using
namespace std;
int a=
;int n;
int sum;
intmain()
printf
("%d\n"
, sum)
; sum =0;
}return0;
}
j - 新年快樂
梯形計算
#include
#include
#include
#include
using
namespace std;
int t;
intmain()
return0;
}
JXUST ECJTU新生訓練賽
a.此題由於字串的長度是10 5,所以利用o n 2 暴力來做的話,顯然是超時的,所以不採用這種方法,我們可以計算每個字元 出現的次數,而題目中 告訴pairs x,y and y,x should be considered different,所以組成的個數總和就是 每個字元出現的次數的乘積之和...
2021新生訓練題解02
a 思路 dp 由於每乙個點只能從該點的左側或上側到達,因此到達該點的最小花費一定在到達該點上側和左側之前產生,可得轉移方程 dp i j min dp i 1 j dp i j 1 注意特判i 1 0和 j 1 0 的情況 標程 b 思路 數學幾何 沿著柱面向上走,可將柱面展開,變成乙個矩形,兩點...
EOJ 2018 1 29新生訓練Week2
總體來說不算好做 但是確實也不難。給定正整數n,k,求f n,k ni 1ik f n k i 1 ni k,結果對19260817取模。1 n 1e7,0 k 1e9 時限0.698s 上來用拉格朗日插值法直接wa。正解其實比想象的簡單。先尤拉篩出素數,對素數用快速冪求出i k存起來。然後對合數的...