2020牛客多校第十場 A

2021-10-09 06:05:08 字數 1306 閱讀 8281

x 是乘法

以任意點為起點,一直以 2 x now % p(第一類) 做的話 或者3 x now%p(第二類) ,會形成乙個或者多個環。環上有什麼特點。對於 某個數z,它所對應的後一位是y,當 2 x z %p = 3 x z % p 相等的時候,這兩類的環在z後面的數y時一樣的。但是 -> 上式化簡 2 x z + n x p = 3 x z + m x p -> x = (n-m) x p -> z <=0 || z >= p 是不滿足的,故第一類環和第二類環某個相同的數接在後面的數不會相同。

有了以上結論,我們可以這樣做,先走第一類的點,當走不動時選擇走第二類去過渡一下(相當於以第二類為媒介,讓我們的路線從乙個第一類的環走到另乙個第一類的環),走不動就無合法序列。

對於起點是沒有要求的。

說的複雜,但是**還是很簡單。

**:

#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

#include

#define int long long

#define sc scanf

#define pf printf

using

namespace std;

typedef pair<

int,

int> pii;

typedef

long

long ll;

typedef

unsigned

long

long ll;

const

int inf =

0x3f3f3f3f

;const

double eps =

1e-4

;const

int mod =

998244353

;const

int n =

1000010

;bool book[n]

;int res[n]

,cnt;

signed

main()

if(!book[now*

2%p]

&& now*

2%p)

elseif(

!book[now*

3%p]

&& now*

3%p)

else

break;}

if(!plas) cout<<-1

}return0;

}

2019牛客多校第十場

對於s n s n s n 考慮某個字母是從s n 1 s n 1 s n 1 轉移還是從s n 2 s n 2 s n 2 轉移 include define fo i,a,b for i a i b i define n 10005 using namespace std int t,n,q,p...

19牛客多校第十場G

之前gym做過乙個畫圓的。然後這個也想畫圓。算了算複雜度n 3logn還蠻好。卡常卡了3個小時投降了。學藝不精啊。賽後去看了qls的 學到了神奇的優化技巧。比如我們要check點到直線的距離是否大於等於二分的半徑r。我們可以直接用叉積判,而不是算投影。我覺得最大的優化就在這了,理論上省了一半多常數。...

牛客網暑期多校 (第十場)

題意 給你乙個長度為 n 的序列,初始元素均為 0 有 3 種操作,1 是給序列的某乙個區間加上同乙個元素,2 是將此序列變為它的字首和序列,3 是求序列某乙個區間的和 資料保證 操作3 的次數不多於 500 次 思路分析 這題想了好久才勉強有點思路,挺不錯的一道題目 可以這樣想,當我們在某乙個位置...