FJOI2018二试游记
生活随笔
收集整理的這篇文章主要介紹了
FJOI2018二试游记
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
二試畫風(fēng)清奇
T1普及組水題 BZOJ4500
T2原題 BZOJ4919
前兩天加起來1h-
T3毒瘤題 肛了3h+得到0分的好成績
省選rank44->rank24
T1
#include<cstdio> #include<algorithm> #define rep(i,s,t) for(register int i=s;i<=t;++i) using namespace std; #define gc getchar() const int N=2e6+11,inf=(1<<30); inline int read(){char c;while(c=gc,c==' '||c=='\n');int data=0,f=1;if(c=='-')f=-1;else data=c-48;while(c=gc,c>='0'&&c<='9')data=(data<<1)+(data<<3)+c-48;return data*f; } int T,n,m,k,tot,x,y,z; int nxt[N],las[4011],to[N],w[N],ans[4011]; inline void add(int x,int y,int z){nxt[++tot]=las[x],las[x]=tot,to[tot]=y,w[tot]=z; } inline void init(){rep(i,1,n+m)las[i]=0,ans[i]=-inf;tot=0; } inline bool bfs(int x){for(register int e=las[x];e;e=nxt[e]){if(ans[to[e]]==-inf){ans[to[e]]=w[e]-ans[x];if(!bfs(to[e]))return 0;}elseif(ans[to[e]]+ans[x]!=w[e])return 0;}return 1; } int main(){freopen("solo.in","r",stdin);freopen("solo.out","w",stdout);T=read();while(T--){n=read(),m=read(),k=read();init();rep(i,1,k){x=read(),y=read()+n,z=read(),add(x,y,z),add(y,x,z);}rep(i,1,n+m)if(ans[i]==-inf){ans[i]=0;if(!bfs(i)){puts("No");goto end;}}puts("Yes");end:;}return 0; } T1 code?
T2
#include<cstdio> #include<algorithm> #include<set> #define rep(i,s,t) for(register int i=s;i<=t;++i) using namespace std; const int N=4e5+11,M=2e5+11; int nxt[N],las[N],to[N]; int val[N]; multiset<int>s[M]; multiset<int>::iterator it; int n,fa,tot; inline void add(int x,int y){nxt[++tot]=las[x];las[x]=tot;to[tot]=y; } inline void merge(int x,int y){if(s[x].size()<s[y].size())swap(s[x],s[y]);for(it=s[y].begin();it!=s[y].end();++it)s[x].insert(*it);s[y].clear(); } inline void dfs(int x=1){for(register int e=las[x];e;e=nxt[e]){dfs(to[e]);merge(x,to[e]);}it=s[x].upper_bound(val[x]);if(it!=s[x].end())s[x].erase(it);s[x].insert(val[x]); } #define gc getchar() inline int read(){char c;while(c=gc,c==' '||c=='\n');int data=0,f=1;if(c=='-')f=-1;else data=c-48;while(c=gc,c>='0'&&c<='9')data=(data<<1)+(data<<3)+c-48;return data*f; } int main(){freopen("boss.in","r",stdin);freopen("boss.out","w",stdout);n=read();rep(i,1,n){val[i]=read(),val[i]=-val[i];}rep(i,2,n){fa=read(),add(fa,i);}dfs();printf("%d\n",(int)s[1].size());return 0; } T2 code?
T3 毒瘤題棄療
#include<cstdio> #include<algorithm> #include<queue> #include<cmath> #define rep(i,s,t) for(register int i=s;i<=t;++i) using namespace std; typedef double db; const int N=1e5+11; db S,T,X,Y; inline db sqr(db x){return x*x; } struct point{db x,y;inline bool operator<(point A)const{return sqr(x-S)+sqr(y-T)>sqr(A.x-S)+sqr(A.y-T);} }p[2][N],now; priority_queue<point>heap; int n,m; int a,b,c,d; int mark[2][N]; db ans,h,minn; inline void init(){rep(i,1,n){if(!mark[0][i])heap.push(p[0][i]);if(mark[0][i]==1)S=0,T=p[0][i].y;if(mark[0][i]==2)X=0,Y=p[0][i].y;}rep(i,1,m){if(!mark[1][i])heap.push(p[1][i]);if(mark[1][i]==1)S=h,T=p[1][i].y;if(mark[1][i]==2)X=h,Y=p[1][i].y;} } int main(){freopen("post.in","r",stdin);freopen("post.out","w",stdout);scanf("%d%d%d%d%d%d%lf",&n,&m,&a,&b,&c,&d,&h);mark[a][b]=1,mark[c][d]=2;rep(i,1,n)scanf("%lf",&p[0][i].y);rep(i,1,m){scanf("%lf",&p[1][i].y);p[1][i].x=h;}init();while(!heap.empty()){now=heap.top();heap.pop();ans+=1.*sqrt(1.*sqr(now.x-S)+1.*sqr(now.y-T));S=now.x,T=now.y;}ans+=1ll*sqrt(sqr(X-S)+sqr(Y-T));minn=ans;ans=0.;init();swap(X,S),swap(Y,T);while(!heap.empty()){now=heap.top();heap.pop();ans+=1.*sqrt(1.*sqr(now.x-S)+1.*sqr(now.y-T));S=now.x,T=now.y;}ans+=1ll*sqrt(sqr(X-S)+sqr(Y-T));minn=min(minn,ans);printf("%.2lf\n",minn);return 0; } T3 code?
轉(zhuǎn)載于:https://www.cnblogs.com/Stump/p/8915854.html
總結(jié)
以上是生活随笔為你收集整理的FJOI2018二试游记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python——函数 8、可变长参数
- 下一篇: 如何看待腾讯元宝在科技领域的创新?