牛客多校第九場補題(待完善)

2021-10-08 22:57:35 字數 2159 閱讀 4597

i-the crime-solving plan of groundhog

題目大意:給定一組由(0~9)組成的數,組成兩個數使乘積最小。

解題思路:用陣列儲存(0~9)的個數,先從(1 ~9)選最小的作為其中乙個乘數,其餘的數組成所能表達的最小的數。

難點應該是大數乘法(這個也不難)。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define m 100

#define ll long long

using

namespace std;

const

int n=

1e5+5;

int a[15]

,re[n]

;int

main()

int c1;

for(

int i=

1;i<=

9;i++)}

for(

int i=

1;i<=

9;i++)}

int k=1;

for(

int i=

0;i<

10;i++)}

int len=k;

int jin=0;

for(

int i=len;i>=

0;i--)if

(jin>0)

printf

("%d"

,jin)

;for

(int i=

0;i)printf

("%d"

,re[i]);

printf

("\n");

}}

一模一樣的**第一次提交wa了,搞得我想了好久,驗證了很多資料,感覺沒有問題,第二次提交才ac。

a-groundhog and 2-power representation

首先要了解高精度加法與2的n次方的高精度計算(看了題解後現學的)

高精度加法:參考鏈結

計算2的n次方(高精度):參考鏈結

其次要知道怎麼遞迴:當遇到 2( 時進行遞迴 ,遇到2直接加

用 lon 判斷乙個()是否計算完

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define m 100

#define ll long long

using

namespace std;

int ans[

200]

,alen,b[

1005

],p,k;

char s[

20005];

void

add(

int b,

int len)

while

(ans[alen+1]

) alen++;}

void

mi(ll n)

}add

(b,k);}

ll ksm

(ll a,ll b)

return ans;

}ll dp

(ll st,ll lon)

if(s[i]

==')'

)return

ksm(

2,sum);if

(s[i]

=='2'

)else sum+=2

;//如果只是2 則直接相加 }}

}int

main()

else

for(

int i=alen;i>=

1;i--

)printf

("%d"

,ans[i]);

}

2019牛客多校第九場

由題意可設x y kp bx y kp b x y kp b代入第二個式子中可以得到kpx bx x2 c mod kpx bx x 2 equiv c mod kpx bx x2 c modp p p 第一項是p的倍數可以約掉,所以有x2 bx c 0 m od x 2 bx c equiv 0 ...

牛客多校第九場部分題題解

include using namespace std typedef long long ll ll n,m int f 50000000 intqpow ll a,int b,int p return ret ll inv ll a,ll p ll findr int p while f i 1...

2020牛客多校第九場 解題報告(AEFIK)

def x i return 2 i str input str str.replace 2 x print eval str include define ll long long define sc a scanf d a define sc2 a,b scanf d d a,b define ...