Wannafly挑戰賽6 E 雙拆分數 數學 構造

2021-08-13 22:53:32 字數 1103 閱讀 999

description

對於乙個數字串 s,若能找到一種將其分成左右兩個非空部分 s1,s2 的方案,使得:

1、s1,s2 均無前導零

2、存在兩個正整數 a,b,使得 b 整除 a,且 a/b=s1, a*b=s2

那麼我們記這是乙個合法的分法。特別地,如果乙個串有兩個或更多個不同的合法的分法,那麼我們稱這個數字串是雙拆分數字串。

給定乙個 n,要求構造乙個長度恰為 n 的雙拆分數字串。如果無解,輸出 -1。

input

輸入僅一行乙個正整數 n(1 <= n <= 300)。

output

僅一行乙個數字串或者 -1。

樣例

輸入

8 輸出

24419764

分析

-這是一道數學構造題,根據題意是要找兩個不同的劃分使得分得的兩個子數字串s1、s2分別滿足(s2/s1==k^2),即商為完全平方數。那麼就可以打表或者構造,找到乙個條件的數。

-此題還需注意的是,可以發現,這個構造可以通過奇偶遞推往下的,即如果你發現了乙個偶數***x滿足這個條件,那麼在這個數後面加兩個0,同樣滿足條件

-通過計算,可以發現長度為偶數是,1144符合條件,既可以拆分成1和144,a取12,b取12,或者拆分成11和44,a取22,b取2。同樣,這樣的數還有2288,2392等,隨便找乙個數就可以。長度為奇數是16400符合條件,既可以拆分成16和400,a取80,b取16,或者拆分成1和6400,a取80,b取80。

code

#include 

using

namespace

std;

typedef

long

long ll;

int main()

else

return

0;}

Wannafly挑戰賽6 E 雙拆分數 思維

對於乙個數字串 s,若能找到一種將其分成左右兩個非空部分 s1,s2 的方案,使得 1 s1,s2 均無前導零 2 存在兩個正整數 a,b,使得 b 整除 a,且 a b s1,a b s2 那麼我們記這是乙個合法的分法。特別地,如果乙個串有兩個或更多個不同的合法的分法,那麼我們稱這個數字串是雙拆分...

Wannafly挑戰賽6 鎖

106號房間共有n名居民,他們每人有乙個重要度。房間的門上可以裝若干把鎖。假設共有k把鎖,命名為1到k。每把鎖有一種對應的鑰匙,也用1到k表示。鑰匙可以複製並發給任意多個居民。每個106房間的居民持有若干鑰匙,也就是1到k的乙個子集。如果幾名居民的鑰匙的並集是1到k,即他們擁有全部鎖的對應鑰匙,他們...

Wannafly挑戰賽14 E 線性基

題目描述 給乙個1 base陣列,有n次操作,每次操作會使乙個位置無效。乙個區間的權值定義為這個區間裡選出一些數的異或和的最大值。求在每次操作前,所有不包含無效位置的區間的權值的最大值。輸入描述 第一行讀入乙個正整數 1 n 105 第二行讀入n個正整數,第i個表示a i 0 a i 109 第三行...