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 ...