清北集訓Day3T1 轉換

2021-09-07 17:28:33 字數 3036 閱讀 7832

這題可能是我與正解裡的最近的一次了,可以還是sb的把正解叉了。

正解其實比較顯然:因為$f(x)$只有81個取值,所以我們可以列舉$f(x)$,然後計算$x$,再判斷$x$是否可以轉化為$f(x)$

剛開始以為乙個$f(x)$會對應很多$x$,所以這麼列舉是錯的。

但實際上我們在列舉$f(x)$的時候並不關注$f(x)$與$x$的關係,因此我們可以直接把$f(x)$看做與$x$毫不相關的變數$y$

這樣列舉出$y$對應的$x$後再判斷$f(y)$是否等於$x$,這樣就一定是對的了

//

luogu-judger-enable-o2

//luogu-judger-enable-o2

#include#include

using

namespace

std;

const

int maxn=1e6+10

;#define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<20,stdin),p1==p2)?eof:*p1++)

char buf[1

<<20],*p1=buf,*p2=buf;

inline

intread()

while(c>='

0'&&c<='9')

return x*f;

}int

ans[maxn],tot;

int f(int a,int

p)int a1[50]=;

int a2[50]=;

int a3[50]=;

int a4[50]=;

int a5[50]=;

intmain()

printf(

"%d\n

",tot);

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

printf(

"%d

",ans[i]);puts(""

); }

else

if(b==1&&c==0

)

printf(

"%d\n

",ans);

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

printf(

"%d

",a1[i]);printf("\n"

); }

else

if(a==2

)

printf(

"%d\n

",ans);

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

printf(

"%d

",a2[i]);printf("\n"

); }

else

if(a==3

)

printf(

"%d\n

",ans);

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

printf(

"%d

",a3[i]);printf("\n"

); }

else

if(a==4

)

printf(

"%d\n

",ans);

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

printf(

"%d

",a4[i]);printf("\n"

); }

else

if(a==5

)

printf(

"%d\n

",ans);

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

printf(

"%d

",a5[i]);printf("\n"

); }

}else

printf(

"%d\n

",tot);

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

printf(

"%d

",ans[i]);puts(""

); }}

return0;

}

80分暴力

//

luogu-judger-enable-o2

#include#include

#include

#define int long long

using

namespace

std;

const

int maxn=1e6+10;//

#define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<20,stdin),p1==p2)?eof:*p1++)

//char buf[1<<20],*p1=buf,*p2=buf;

inline int

read()

while(c>='

0'&&c<='9')

return x*f;

}vector

v;int check(int

x)main()

if(v.size()==0)

printf(

"%d\n

",v.size());

for(int i=0;i)

printf(

"%d

",v[i]);

printf("\n

");}

return0;

}

FJ省隊集訓DAY3 T1

思路 我們考慮如果取掉乙個部分,那麼能影響到最優解的只有離它最近的那兩個部分。我講的貌似不是很清楚。還有,蜜汁80分,打死也改不出來。1 include2 include3 include4 include5 include6 struct nodea 1200005 9 struct segmen...

2016國慶清北Day2T1

pa 題目描述 漢諾塔公升級了 現在我們有n個圓盤和n個柱子,每個圓盤大小都不一樣,大的圓盤不能放在小的圓盤上面,n個柱子從左到右排成一排。每次你可以將一 個柱子上的最上面的圓盤移動到右邊或者左邊的柱子上 如果移動之後是合法的 話 現在告訴你初始時的狀態,你希望用最少的步數將第i 大的盤子移動到第i...

XJOI網上同步訓練DAY3 T1

思路 看來我真是思博了,這麼簡單的題目居然沒想到,而且我對複雜度的判定也有點問題。首先我們選了乙個位置i的b,那一定只對i和以後的位置造成改變,因此我們可以這樣看 我們從前往後選,發現乙個位置的s和r相等,然後我們就選這個位置的bi,由於bi會改變當前位置,因此當前位置的vi我們就能吃到了。所以,每...