日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Codeforces Round #395 (Div. 2)(未完)

發(fā)布時(shí)間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces Round #395 (Div. 2)(未完) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2.2.2017 9:35~11:35


?

A - Taymyr is calling you

直接模擬

#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; typedef long long ll; const int N=1e4+5; inline int read(){char c=getchar();int x=0,f=1;while(c<'0'||c>'9'){if(c=='-')f=-1; c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0'; c=getchar();}return x*f; } int n,m,z,ans; int vis[N]; int main(int argc, const char * argv[]) {n=read();m=read();z=read();for(int i=n;i<=z;i+=n) vis[i]=1;for(int i=m;i<=z;i+=m) ans+=vis[i];printf("%d",ans);return 0; } View Code

B - Timofey and cubes

奇數(shù)位置反轉(zhuǎn),偶數(shù)位置不變

#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; typedef long long ll; const int N=2e5+5; inline int read(){char c=getchar();int x=0,f=1;while(c<'0'||c>'9'){if(c=='-')f=-1; c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0'; c=getchar();}return x*f; } int n,a[N]; int main(int argc, const char * argv[]) {n=read();for(int i=1;i<=n;i++) a[i]=read();for(int i=1;i<=n/2;i++) if(i&1) swap(a[i],a[n-i+1]);for(int i=1;i<=n;i++) printf("%d ",a[i]);return 0; } View Code

C - Timofey and a tree

題意:選一個根使得所有子樹同色(每個子樹中節(jié)點(diǎn)同色 不同子樹可以不同色)

比賽時(shí)先打了個傻逼樹形DP發(fā)現(xiàn)不對 ?然后就用對于一個點(diǎn)i它的子樹用樹形DP,它的上面的樹用DFS序+線段樹/ST表詢問顏色相同......反正A掉了

// // main.cpp // C // // Created by Candy on 2017/2/2. // Copyright ? 2017年 Candy. All rights reserved. // #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; #define mid ((l+r)>>1) #define lson x<<1,l,mid #define rson x<<1|1,mid+1,r #define lc x<<1 #define rc x<<1|1 typedef long long ll; const int N=2e5+5; inline int read(){char c=getchar();int x=0,f=1;while(c<'0'||c>'9'){if(c=='-')f=-1; c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0'; c=getchar();}return x*f; } int n,u,v,c[N],a[N]; struct edge{int v,ne; }e[N<<1]; int h[N],cnt=0; inline void ins(int u,int v){cnt++;e[cnt].v=v;e[cnt].ne=h[u];h[u]=cnt;cnt++;e[cnt].v=u;e[cnt].ne=h[v];h[v]=cnt; } struct node{int same; }t[N<<2]; void build(int x,int l,int r){if(l==r) t[x].same=a[l];else{build(lson);build(rson);if(t[lc].same==0||t[rc].same==0||t[lc].same!=t[rc].same) t[x].same=0;else t[x].same=t[lc].same;} } int segSame(int x,int l,int r,int ql,int qr){if(ql>qr) return -1;if(t[x].same) return t[x].same;if(ql<=l&&r<=qr) return t[x].same;else{int same=-1;if(ql<=mid) same=segSame(lson,ql,qr);if(mid<qr){int _=segSame(rson,ql,qr);if(same==-1||same==_) same=_;else same=0;}return same;} } int d[N],L[N],R[N],dfc; void dfs(int u,int fa){L[u]=++dfc; a[dfc]=c[u];d[u]=c[u];for(int i=h[u];i;i=e[i].ne){int v=e[i].v;if(v==fa) continue;dfs(v,u);if(d[u]!=0&&d[v]!=d[u]) d[u]=0;}R[u]=dfc; } int ans; void dfsSol(int u,int fa){//printf("dfsSol %d %d\n",u,fa);if(ans) return;int flag=1;for(int i=h[u];i;i=e[i].ne) if(e[i].v!=fa)if(d[e[i].v]==0) {flag=0;break;}if(flag){int s1=segSame(1,1,n,1,L[u]-1),s2=segSame(1,1,n,R[u]+1,n);flag=0;if(s1!=0&&s2!=0&&(s1==-1||s2==-1||s1==s2)) flag=1; // printf("hi %d %d %d %d %d %d\n",u,L[u],R[u],s1,s2,flag);if(flag) {ans=u;return;}}for(int i=h[u];i;i=e[i].ne)if(e[i].v!=fa) dfsSol(e[i].v,u); } int main(int argc, const char * argv[]) {n=read();for(int i=1;i<=n-1;i++) u=read(),v=read(),ins(u,v);for(int i=1;i<=n;i++) c[i]=read();dfs(1,0);build(1,1,n); // for(int i=1;i<=n;i++) printf("hi %d %d %d %d\n",i,d[i],L[i],R[i]); // for(int i=1;i<=n;i++) printf("a %d %d\n",i,a[i]);dfsSol(1,0);if(ans) printf("YES\n%d",ans);else puts("NO");return 0; } 比賽代碼

實(shí)際上可以發(fā)現(xiàn)如果一條邊兩邊節(jié)點(diǎn)的顏色不對一定是這兩個節(jié)點(diǎn)中的一個做根,三遍DFS就行了....好簡單

dfs

D - Timofey and rectangles

題意:一些不相交矩形邊長都是奇數(shù) 4種顏色染色 判斷可行及一種方案

....最后才看到洛谷群有這道題題解然后最后10s提交失敗嗚嗚嗚

超簡單 邊長奇數(shù),所以橫邊相鄰的矩形y坐標(biāo)奇偶性不同 x同理 所以按左下角奇偶性染色就行了

// // main.cpp // C // // Created by Candy on 2017/2/2. // Copyright ? 2017年 Candy. All rights reserved. // #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; typedef long long ll; inline int read(){char c=getchar();int x=0,f=1;while(c<'0'||c>'9'){if(c=='-')f=-1; c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0'; c=getchar();}return x*f; } int n,x,y; int main(int argc, const char * argv[]) {n=read();puts("YES");for(int i=1;i<=n;i++){x=read();y=read();x=min(x,read());y=min(y,read());x+=1e9;y+=1e9;if(x&1){if(y&1) puts("1");else puts("2");}else{if(y&1) puts("3");else puts("4");}} } View Code

未完

?

轉(zhuǎn)載于:https://www.cnblogs.com/candy99/p/6362422.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的Codeforces Round #395 (Div. 2)(未完)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。