1. 程式人生 > 其它 >高一普及組模擬賽3-2022/5/15

高一普及組模擬賽3-2022/5/15

A. 李時珍的面板衣

B. 馬大嘴的廢話

C. SSY的佇列

D. 清理牛棚

賽時得分:210

排行:12

kiritokazuto大佬拿了rank1%%%太強了

好習慣:先看T1

A. 李時珍的面板衣

 手模可以發現其實就是二進位制:

以3為例,設0不透,1透(但是0應該才是被透的?逃

0,0,0 -> 1,0,0 -> 0,1,0 -> 1,1,0 -> 0,0,1

這時剛好三個都透明過

所以很明顯就是

(2^(n-1)+1)%n

#include<cstdio>
#include<cstring>
#include<string>
#define
WR WinterRain using namespace std; long long mod; long long read(){ long long s=0,w=1; char ch=getchar(); while(ch>'9'||ch<'0'){ if(ch=='-') w=-1; ch=getchar(); } while(ch>='0'&&ch<='9'){ s=(s<<3)+(s<<1)+ch-'0'; ch=getchar(); }
return s*w; } long long quick_pow(long long a,long long b){ long long base=a,res=1; while(b){ //printf("%d %d %d\n",b,res,base); if(b&1) res=res*base%mod; base=base*base%mod; b>>=1; } return res; } int main(){ freopen("lsz.in","r",stdin); freopen(
"lsz.out","w",stdout); mod=read(); printf("%lld",(quick_pow(2,mod-1)+1)%mod); fclose(stdin); fclose(stdout); return 0; }

然後切了

看T2:這是Trie啊

然後看資料範圍:n<=10000 , m<=100000

算了一下100000會爆炸,認為是KMP然後跳了

殊不知我只要再數一下n的0就會發現

n=10000

然後就沒有然後了……

開T3,這是一大敗筆……

先打暴力,next_permutation走起

以為是數學題,開始容斥,死推活推推不出來柿子……

心態開朗(

中間亂搞搞了一個T2的暴力

捏了幾組資料過了感覺很穩

然後開T4

D. 清理牛棚

審題:你好動規

然後寫了一個二維的,發現80000的n完全沒法玩

所以果斷壓掉一維