這題可能是我與正解裡的最近的一次了,可以還是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$,這樣就一定是對的了
//80分暴力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;
}
//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我們就能吃到了。所以,每...