以后再也不做$World Final$的题了................

还我下午

bzoj上TLE一次后就不敢交了然后去uva交

Claris太神了代码完全看不懂

还有一个代码uva上竟然WA了我也不知道怎么回事....

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int N=,INF=2e9;
typedef long long ll;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int n,m,w[][];
int a[*+];
struct edge{
int v,ne;
}e[N*N];
int h[N],cnt=;
inline void ins(int u,int v){
cnt++;
e[cnt].v=v;e[cnt].ne=h[u];h[u]=cnt;
}
int dfn[N],low[N],dfc,belong[N],scc;
int st[N],top;
void dfs(int u){
dfn[u]=low[u]=++dfc;
st[++top]=u;
for(int i=h[u];i;i=e[i].ne){
int v=e[i].v;
if(!dfn[v]){
dfs(v);
low[u]=min(low[u],low[v]);
}else if(!belong[v])
low[u]=min(low[u],dfn[v]);
}
if(dfn[u]==low[u]){
scc++;int x=;
while(x!=u){
x=st[top--];
belong[x]=scc;
}
}
}
bool judge(){
for(int i=;i<=n;i++)
if(belong[(i<<)-]==belong[i<<]) return false;
return true;
}
int A,B;
bool check(){
cnt=;int _=n<<;
for(int i=;i<=_;i++) h[i]=dfn[i]=low[i]=belong[i]=;dfc=scc=;
for(int i=;i<n;i++)
for(int j=i+;j<=n;j++){
int x=i<<,y=j<<,val=w[i][j];
if(A<val&&val<=B) ins(x-,y),ins(y-,x);
else if(val>B) ins(x-,y),ins(x,y-),ins(y-,x),ins(y,x-);
}
for(int i=;i<=_;i++) if(!dfn[i]) dfs(i);
return judge();
}
int ans;
void solve(){
int head=,tail=m;
while(head<=tail){
A=a[head];B=a[tail];
while(head<=tail&&check()){
ans=min(ans,A+B);
B=a[--tail];
}
head++;
}
}
void solve1(){
for(int i=;i<=m;i++){printf("A %d\n",i);
A=a[i];if((A<<)>ans) break;
int l=i,r=m,t=INF;
while(l<=r){
int mid=(l+r)>>;
B=a[mid];
if(check()) t=B,r=mid-;
else l=mid+;
}
ans=min(ans,A+t);
}
}
int main(){
freopen("in","r",stdin);
while(scanf("%d",&n)!=EOF){
ans=INF;
m=;
if(n<=) {puts("");return ;}
for(int i=;i<n;i++)
for(int j=i+;j<=n;j++)
w[i][j]=w[j][i]=read(),a[++m]=w[i][j];
sort(a+,a++m);
solve();
printf("%d\n",ans);
}
}

BZOJ 4078: [Wf2014]Metal Processing Plant [放弃了]的更多相关文章

  1. BZOJ 4078: [Wf2014]Metal Processing Plant

    4078: [Wf2014]Metal Processing Plant Time Limit: 100 Sec  Memory Limit: 128 MBSubmit: 86  Solved: 20 ...

  2. 【刷题】BZOJ 4078 [Wf2014]Metal Processing Plant

    Description 定义集合S的价值D(S)为: 现在给你n个元素,并给出其中任意两个元素之间的d(i,j)值 要你将这些元素划分成两个集合A.B. 求min{D(A)+D(B)}. 注:d(i, ...

  3. bzoj 4078: [Wf2014]Metal Processing Plant【二分+2-SAT+枚举+并查集】

    枚举从大到小s1,二分s2(越大越有可能符合),2-SAT判断,ans取min 思路倒是挺简单的,就是二分的时候出了比较诡异的问题,只能二分s2的值,不能在数组上二分... 有个优化,就是当不是二分图 ...

  4. BZOJ4078 : [Wf2014]Metal Processing Plant

    设$D(A)\leq D(B)$,从小到大枚举$D(A)$,双指针从大到小枚举$D(B)$. 那么对于权值不超过$D(A)$的边,可以忽略. 对于权值介于$(D(A),D(B)]$之间的边,需要满足那 ...

  5. Codeforces Gym 101221G Metal Processing Plant(2-SAT)

    题目链接 题意:有 \(n\) 个元素,第 \(i\) 个数与第 \(j\) 个数之间有一个权值 \(d_{i,j}\),\(d(i,j)=d(j,i)\). 定义函数 \(D(S)=\max\lim ...

  6. BZOJ 1758: [Wc2010]重建计划 [暂时放弃]

    今天晚上思维比较乱,以后再写写吧#include <iostream> #include <cstdio> #include <cstring> #include ...

  7. BZOJ4078 WF2014Metal Processing Plant(二分答案+2-SAT)

    题面甚至没给范围,由数据可得n<=200.容易想到二分答案,暴力枚举某集合的价值,2-SATcheck一下即可.这样是O(n4logn)的. 2-SAT复杂度已经是下界,考虑如何优化枚举.稍微改 ...

  8. bzoj 4080: [Wf2014]Sensor Network【瞎搞+随机化】

    参考:https://blog.csdn.net/YihAN_Z/article/details/73380387 一点都不想写正解.jpg random_shuffle一下然后贪心的加点,和ans取 ...

  9. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

随机推荐

  1. Springboot-shiro-redis实现登录认证和权限管理

    Springboot-shiro-redis实现登录认证和权限管理 在学习之前: 首先进行一下Apache Shiro和Shiro比较: Apache Shiro是一个功能强大.灵活的,开源的安全框架 ...

  2. 《你不知道的JavaScript上卷》知识点笔记

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" } p.p2 { margin: 0.0px ...

  3. 使用layui在规定的期限内选择日期

    这几天碰到了layui中的日期与时间这个,本以为很简单的,可是又一个需求是这样的,有两个日期选择框,第一个日期选择框要求最小日期不得小于当前日期,第二个日期选择框要求最小日期为第一个日期选择框的选中日 ...

  4. linux 树型显示文件 tree ls tree 命令

    原创 2016年07月27日 09:50:19   yum install tree tree www │?? │?? │?? └── xml.test │?? │?? └── valgrind.su ...

  5. PHP 常用的header头部定义汇总

    http://www.jb51.net/article/68159.htm

  6. MySQL事务隔离级别的实现原理

    回顾 在MySQL的众多存储引擎中,只有InnoDB支持事务,所有这里说的事务隔离级别指的是InnoDB下的事务隔离级别. 读未提交:一个事务可以读取到另一个事务未提交的修改.这会带来脏读.幻读.不可 ...

  7. tp5 隐藏index.php 邓士鹏

    tp5 隐藏index.php ------------------------------------------------------------------------------------ ...

  8. html_栏目下拉

    ========================================================= =================[ 下拉栏目菜单 ]=============== ...

  9. HTML面试

    ------------------------------------------------------- 行列 td tr ol -------------------------------- ...

  10. webpack模块机制浅析【一】

    webpack模块机制浅析[一] 今天看了看webpack打包后的代码,所以就去分析了下代码的运行机制. 下面这段代码是webpack打包后的最基本的形式,可以说是[骨架] (function(roo ...