noip模擬 表示式整除
2023年7月31日
dp
描述 description24點這個遊戲好多人都玩過,就是給你4個數,新增相應的運算子,是否可以得到結果是24.
小x在玩了很多遍這個遊戲之後,想把這個遊戲給改變一下。 給你n個整數,在n個整數間,只能新增+和- 兩種運算子。
17+5+(-21)+15=16
17+5+(-21)-15=-14
17+5-(-21)+15=58
17+5-(-21)-15=28
17-5+(-21)+15=6
17-5+(-21)-15=-24
17-5-(-21)+15=48
17-5-(-21)-15=18
現在的問題是:給你n個數,能夠構成乙個表示式,讓這個表示式的值能被某個給定的數整除。 上面的例子中:可以被7整除,但是不能被5整除。
輸入格式 input format
第一行乙個整數,表示有k組測試資料。 接下來對於每組測試資料有兩行:
第一行是兩個整數n和x(1<=n<=10000, 2<=x<=100), n 表示數列中整數的個數;x就是需要你判斷的這個數列是否能被x整除。
輸出格式 output format
包含k行,每行表示一組資料的結果。 如果能被x整除,輸出」divisible」,如果不能,則輸出 「not divisible」
#include
#include
#include
#include
using
namespace
std;
int k;
int f[11000];
bool e[11000][300];//1-100:負餘數
inline
int reminder(int a, int mod)
void runfunction()
if(e[n][100] == true) cout
<< "divisible"
<< endl;
else
cout
<< "not divisible"
<< endl;
}int main()
動態規劃 最佳加法表示式
總時間限制 1000ms 記憶體限制 65536kb 描述 給定n個1到9的數字,要求在數字之間擺放m個加號 加號兩邊必須有數字 使得所得到的加法表示式的值最小,並輸出該值。例如,在1234中擺放1個加號,最好的擺法就是12 34,和為36 輸入有不超過15組資料 每組資料兩行。第一行是整數m,表示...
最佳加法表示式(動態規劃)
一 題目描述 描述 給定n個1到9的數字,要求在數字之間擺放m個加號 加號兩邊必須有數字 使得所得到的加法表示式的值最小,並輸出該值。例如,在1234中擺放1個加號,最好的擺法就是12 34,和為36 輸入 有不超過15組資料 每組資料兩行。第一行是整數m,表示有m個加號要放 0 m 50 第二行是...
動態規劃之最佳加法表示式
有乙個由1.9組成的數字串.問如果將m個加號插入到這個數字串中,各種可能形成的表示式中,值最小的那個表示式的值是多少?假設數字串的長度為n,有m個括號,插入的所有可能性為n m 如果要把所有可能性全部計算出來再找出最小值,這樣計算的時間複雜符是巨大的。換乙個角度思考,從後往前來看 若最後乙個加號新增...