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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ZOJ3370. Radio Waves(2-sat)

發(fā)布時(shí)間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ZOJ3370. Radio Waves(2-sat) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

算是很裸的吧,二分半徑,然后2-sat判定能不能滿足條件。

#include <bits/stdc++.h> using namespace std; const int maxn=1222; const double eps=1e-9; struct node{double x,y; }p[maxn]; struct twoset{int n;vector<int>g[maxn<<1];bool mark[maxn<<1];int s[maxn<<1],c;bool dfs(int x){if(mark[x^1])return false;if(mark[x])return true;mark[x]=true;s[c++]=x;for(int i=0;i<g[x].size();i++)if(!dfs(g[x][i]))return false;return true;}void init(int n){this->n=n;for(int i=0;i<n*2;i++)g[i].clear();memset(mark,0,sizeof mark);}void add_clause(int x,int xval,int y,int yval){x=x*2+xval;y=y*2+yval;g[x^1].push_back(y);g[y^1].push_back(x);}bool solve(){for(int i=0;i<n*2;i+=2){if(!mark[i]&&!mark[i+1]){c=0;if(!dfs(i)){while(c>0)mark[s[--c]]=false;if(!dfs(i+1))return false;}}}return true;} }solver;double getdis(node a,node b){return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); } void run(int n){for(int i=0;i<n;i++)scanf("%lf%lf",&p[i].x,&p[i].y);double l=0,r=30000,ans=0;while(l+eps<=r){double mid=(l+r)/2;solver.init(n);for(int i=0;i<n;i++)for(int j=i+1;j<n;j++){double dis=getdis(p[i],p[j]);if(dis<2*mid){solver.add_clause(i,0,j,0);solver.add_clause(i,1,j,1);}}if(solver.solve())ans=mid,l=mid+eps;else r=mid-eps;}solver.init(n);for(int i=0;i<n;i++)for(int j=i+1;j<n;j++){double dis=getdis(p[i],p[j]);if(dis<2*ans){solver.add_clause(i,0,j,0);solver.add_clause(i,1,j,1);}}solver.solve();printf("%.8lf\n",ans);for(int i=0;i<n;i++){if(solver.mark[i<<1])putchar('1');else putchar('2');printf("%c",i==n-1?'\n':' ');} } int main() { // freopen("in","r",stdin);int n;while(scanf("%d",&n)>0)run(n);return 0; }

  

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

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的ZOJ3370. Radio Waves(2-sat)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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