题意求一个位数 $\geq 2$ 的 $2^{k}$ 进制数 $r$ ,满足:化为二进制后位数 $\le w$每一位上的数依次递增其中 $k\le 9 \ , \ k\le w\le 30000$ ,保证 $r$ 化为 $10$ 进制的位数 $\le 200$ 。题解对于条件 $1$ ,显然 $r$ 的位数 $L \le \lceil \dfrac{w}{k}\rceil $ 。当 $L\l...
就是一道区间dp+高精,最开始还想拿int_128来水水的,结果算算还是不太够,就老老实实写了高精。$f[st][ed][cnt]$ 表示在区间 $st..ed$ 放 $cnt$ 个乘号的最大值,转移方程式为:$$f[st][ed][cnt]=\max \{ f[st][mid][x]\times f[mid+1][ed][cnt-x-1] \}$$每次转移时枚举放乘号的位置 $(mid)$...
只是发个板子。虽说似乎NOIp近几年一般都是取膜而不是高精了,但我还是担心会考,所以就复习了一下。定义用struct储存整个数和位数。整个数全部倒序方便计算。struct bigint{
int s[5005],len;
bigint(){memset(s,0,sizeof(s));len=0;}
};加法inline bigint add(bigint x,bigint y...