長沙集訓 2017 9 22

2022-09-19 08:27:09 字數 3693 閱讀 5299

今天的題,大概是比較考驗打暴力的能力。

三道都是暴力,都是你認為你a了就wa成zz的。。

中午被ykk毒奶「你打暴力很穩啊」,然後就炸了。。。

t1 溢位

簡單模擬,正經的noip day1t1難度。一開始資料有誤爆0,改後就a了。

讀入,判斷最大值除以當前值的商和讀入值的關係。

#include#include

#include

#include

#include

#include

#include

typedef

long

double

ll;using

namespace

std;

intans,t,fl;

ll sum,tp,x,lim[

20]=;

char op[50

];inline ll read(

intf)

if(ch=='

\n') fl=1

;

return

res;

}int

main()

if(!lz&&op[3]=='

8') now=1

;

if(!lz&&op[3]=='

1') now=3

;

if(!lz&&op[3]=='

3') now=5

;

if(!lz&&op[3]=='

6') now=7

;

if(lz&&op[3]=='

8') now=2

;

if(lz&&op[3]=='

1') now=4

;

if(lz&&op[3]=='

3') now=6

;

if(lz&&op[3]=='

6') now=8

; sum=1; ans=0

;

for(int i=1;i;i++)

}

}return0;

}

view code

t2函式變換

暴力搜尋。據說可以直接暴力求尤拉函式,求穩還是線篩預處理了10^7以內的。然後直接爆搜。

很不幸的預處理出來的東西單獨開了個函式,然後那裡面此次不按2操作做的直接返回了,忘了繼續遞迴。。

然後三步運算子沒有打括號。。。gg。。

#include#include

#include

#include

#include

#include

#include

typedef

long

long

ll;const

int maxn=1e7+299

;int

ans,n,k,p[maxn],ol[maxn],bo[maxn],cs[maxn],t;

using

namespace

std;

void

get_prime()

cs[i]=cs[ol[i]]+1

;

for(int j=1;j<=p[0]&&i*p[j]<=(maxn-290);j++)

else ol[p[j]*i]=ol[i]*(p[j]-1

); }

}}int fenjie(int

n)

if(tp!=1) res=res/tp*(tp-1

);

return

res;

}int workx(int cnt,int kcs,int

now)

int workd(int cnt,int kcs,int

now)

tp1=(now/2+1>=1e7?(workd(cnt+1,kcs+1,now/2+1)+1):(workx(cnt+1,kcs+1,now/2+1))+1

);

if(now<=1e7) tp2=workx(cnt+1,kcs,cs[now])+1

;

else

return

min(tp1,tp2);

}int

main()

return0;

}

view code

t3跳躍切除子串行

列舉每個a的倍數,然後暴力匹配。寫得比較玄,特判了從前往後直接配上和從後往前直接配上以及前後各一段匹配上的情況。

然後找到第乙個不匹配的和第二個,他們的差作為公差的上限暴力匹配。

這題細節比較多,比較坑。。寫的時候沒有考慮兩種情況:

1.可以配上但是應該刪除。 這個很好改。

2.中間刪除一段後後端直接匹配。可以問一下長度然後暴力匹配,但是發現資料比較水特判一下就過了,在下比較懶。

#include#include

#include

#include

#include

#include

#include

typedef

long

long

ll;const

int maxn=1e5+299

;using

namespace

std;

inta[maxn],b[maxn],cc[maxn],t,s[maxn],aa,ss;

void jia(int a,int b,int

c)

while

(tp)

for(int i=0;i<=c[0];i++) a[i]=c[i];

}int ok(int

a)

for(int i=1,j=1;i<=s[0];i++,j++)

if(zp+yp>=s[0]) return1;

for(int i=a[0],j=s[0];i>=1;i--)

}else j--;

}for(int k=2;k<=l-r;k++)

else

if(i==pre-k&&i!=1) pre=i;

else

if(j) j--;

if(j==0&&i==1) return1;}}

return0;

}int

main()

else

for(int i=0;i<=a[0];i++) b[i]=a[i];

while

(ss)

for(int i=1;i;i++)

jia(a,b,cc);

}for(int i=a[0];i>=0;i--) b[i]=0

;

for(int i=a[0];i>=0;i--) a[i]=0

;

for(int i=s[0];i>=0;i--) s[i]=0

;

for(int i=cc[0];i>=0;i--) cc[i]=0

; }

}return0;

}

view code

長沙集訓day11

聽說今天開學了?然而我還在長沙,就剩2天了。下星期焫雞就撤了,會去上上文化課。進入正題,今天的題。無語了。t1 noip 模擬賽 yyc題目概述 題目名稱 打一局嗎 字串 哲學考驗 源程式檔名 game.str.test.輸入輸出檔名 game.in out str.in out test.in o...

長沙集訓day8

長沙集訓第8天,此處省略1000000!字.t1 乙個進入了 一刀999級 的dalao,要砸錢通關遊戲k次,每次打怪都的花費ai x bi的代價。x為第幾次打這個怪物,一共有n的點和m條邊,s個終點。而且你打這個怪c次後他就會躲起來,然後你就無法通關。讓你就出他能否打過k次通關,如果能就輸出最小花...

長沙集訓day7

恢復內容開始 這輸入法有毒哇。xf剛剛筆記本卡了,沒有儲存,還得在打qaq 已經來著乙個星期了,這星期的集訓又開始了,直接進入正題 t1 給你乙個長度為n的序列,讓你求出abs a i i 的最小值和。你可以對數列做一次操作,使得數列所有的數往前移動乙個,第一項變為第n項。看到這道題想了一會,暴力分...