11 7多校聯考

2021-08-10 11:39:19 字數 1079 閱讀 8313

t1

為了避免晚上種種事情導致寫不成題解就先把t1寫了,畢竟也是很值得寫的。

我這道題憑著乙個半感性半理性的想法意外的水到了80分……真的是很考人品啊【學競賽啊,墜重要的就是人品!】

先看正解:

我們可以這樣化: t=

(((s

∗bk1

+i1∗

a)∗b

k2+i

2∗a)

∗bk3

+i3∗

a)∗b

k4+.

....

. 再化簡一下: t=

s∗bk

1+..

.+kn

+i1∗

a∗bk

2+..

.+kn

+...

+in∗

a∗bk

n 所以我們可以在最外層列舉k1

+...

+kn ,然後把剩餘的值/a,開始遞迴,接著依次列舉k2

+...

+kn,

k3+.

..+k

n,..

...,

kn每次使它們的值盡量大,這樣得到的加減次數就會盡量小了。

#include

#include

#include

using namespace std;

const int inf=1e9;

ints,t,a,b;

int mpow[30];

int solve(int

x,int tmp)

}}

}int main()

}if(ans==inf) printf("-1");

else

printf("%d",ans);

return

0;}

我的那個詭異的方法是怎麼回事晚上補

t3 易理解具有二分性質

易理解進行x輪操作,可以把小b的操作全部提到前面。

把每個數指向它應該在的位置,如果形成了乙個環,那麼環內交換的數一共只用「環內數字-1」

例:1 3 2 5 4

9 7多校聯考

題目描述 給定了乙個正整數 n。有多少種方法將 n 分解成為四個質數 a,b,c,d 的和。例如 9 2 2 2 3 2 2 3 2 2 3 2 2 3 2 2 2,故共有 4 種方法將 9 分 解成為四個整數。輸入格式 本題多組資料測試 第一行讀入乙個整數 t 表示資料組數。接下來共 t 行,每行...

2020多校聯考 樹

沒有定根就非常的離譜,後來告訴根直接就是 1 先考慮鏈上怎麼做,顯然維護乙個單調棧,求出第乙個比當前數大的位置,然後倍增即可。再放在樹上怎麼做?依舊維護單調棧,但這次不能暴力地彈掉棧頂元素了,因為這樣的複雜度是假的。因為單調棧有單調性,所以直接在單調棧內二分出單調棧彈得不能再彈的位置,然後修改 to...

2020多校聯考 手套

有兩個可重集 a 和 b 每個集合裡有若干元素,每種元素有若干個。可以選擇從 a 集中等概率隨機選 x 個到 c 集 從 b 中等概率隨機選擇 y 個到 d 使得一定會使 c 和 d 有交。最小化 x y 在 x y 相等時最小化 x 因為要使得一定有交,所以考慮選了一定數目後,沒有交的最壞情況。最...