我们考虑这个题。。。思路比较神仙。

就是我们设\(sum[i]\)为前i个的区间里的情况,然后我们知道\(sum[j]\)的话,我们就可以知道\(j-i\)的情况了

所以说这很像最小生成树里面的约束条件是吧qwq

就是不存在环的性质。。。。

所以我们考虑建图,然后跑最小生成树就可以了。。。。

然后就是kruskal板子啦qwqwq

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#define MAXN 4000010
using namespace std;
int n,cnt,tot;
int fa[MAXN];
long long ans;
struct Node{int x,from,to;}node[MAXN];
inline int find(int x)
{
if(fa[x]==x) return x;
return fa[x]=find(fa[x]);
}
bool cmp(Node x,Node y)
{
if(x.x<y.x) return 1;
else return 0;
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++)
for(int j=i+1;j<=n;j++)
scanf("%d",&node[++cnt].x),node[cnt].from=i,node[cnt].to=j;
for(int i=0;i<=n;i++) fa[i]=i;
sort(node+1,node+1+cnt,cmp);
for(int i=1;i<=cnt;i++)
{
int a=find(node[i].from);
int b=find(node[i].to);
if(a!=b)
{
fa[a]=b;
tot++;
ans+=node[i].x;
}
if(tot==n) break;
}
cout<<ans<<endl;
return 0;
}

[bzoj3714] [PA2014] Kuglarz(最小生成树)的更多相关文章

  1. BZOJ3714 PA2014 Kuglarz 最小生成树

    题目传送门 题意:有$N$个盒子,每个盒子中有$0$或$1$个球.现在你可以花费$c_{i,j}$的代价获得$i$到$j$的盒子中球的总数的奇偶性,求最少需要多少代价才能知道哪些盒子中有球.$N \l ...

  2. 【BZOJ3714】[PA2014]Kuglarz 最小生成树

    [BZOJ3714][PA2014]Kuglarz Description 魔术师的桌子上有n个杯子排成一行,编号为1,2,…,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获 ...

  3. bzoj3714: [PA2014]Kuglarz

    [PA2014]KuglarzTime Limit: 20 Sec Memory Limit: 128 MBSubmit: 553 Solved: 317[Submit][Status][Discus ...

  4. bzoj 3714 [PA2014]Kuglarz 最小生成树

    [PA2014]Kuglarz Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1335  Solved: 672[Submit][Status][Di ...

  5. BZOJ3714 [PA2014]Kuglarz 【最小生成树】

    题目链接 BZOJ3714 题解 我们如果知道了所有的数,同样就知道了所有的前缀和 相反,我们如果求出了所有前缀和,就知道了所有的数,二者是等价的 对于一个区间\([l,r]\)如果我们知道了前缀和\ ...

  6. 【kruscal】【最小生成树】【并查集扩展】bzoj3714 [PA2014]Kuglarz

    ORZ:http://www.cnblogs.com/zrts/p/bzoj3714.html #include<cstdio> #include<algorithm> usi ...

  7. [BZOJ3714][PA2014]Kuglarz(MST)

    题目: Description 魔术师的桌子上有n个杯子排成一行,编号为1,2,…,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获得奖品.花费c_ij元,魔术师就会告诉你杯子 ...

  8. 【BZOJ3714】Kuglarz(最小生成树)

    [BZOJ3714]Kuglarz(最小生成树) 题面 BZOJ Description 魔术师的桌子上有n个杯子排成一行,编号为1,2,-,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯 ...

  9. [PA2014]Kuglarz

    [PA2014]Kuglarz 题目大意: 有一个长度为\(n(n\le2000)\)的0/1串,你可以花\(c_{i,j}\)的钱,询问区间\([i,j]\)的异或和.问至少要多少元才能知道原来的序 ...

随机推荐

  1. 【转】Unity3d:读取FBX中的动画

    从模型中获得切割好的动画clip,并且对其中设置好的动画事件进行修改方法: 1.动画模型后缀为.FBX.在Unity3d中,能够显示FBX中的动画.要加载模型中的AnimationClip,只要Ass ...

  2. 正则表达式在java程序中的使用

    package com.boco; import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;im ...

  3. Linux实战教学笔记53:开源虚拟化KVM(一)搭建部署与概述

    一,KVM概述 1.1 虚拟化概述 在计算机技术中,虚拟化意味着创建设备或资源的虚拟版本,如服务器,存储设备,网络或者操作系统等等 [x] 虚拟化技术分类: 系统虚拟化(我们主要讨论的反向) 存储虚拟 ...

  4. Linux实战教学笔记35:企业级监控Nagios实践(下)

    七,服务器端Nagios图形监控显示和管理 前面搭建的Nagios服务虽然能显示信息,能报警.但是在企业工作中还会需要一个历史趋势图,跟踪每一个业务的长期趋势,并且能以图形的方式展示,例如:根据磁盘的 ...

  5. linux下jdk/maven/tomcat

    debian安装的openjdk只包括jre,没有tools.jar,dt.jar,所以要安装openjdk完全版. sudo apt--jdk 若操作系统中安装多个版本的java,可以采用如下命令来 ...

  6. 使用RampTexture来控制diffuse shading

    [RampTexture] RampTexture(渐变纹理),可以是1D/2D纹理. This allows you to accentuate the surface's colors to fa ...

  7. Excel VBA 获取按钮对象

    今天给同事写了两个VBA宏,并分别把宏赋给了两个按钮. 因为两个宏都是实现在两种显示方式之间切换,于是我想除了功能的实现外,还希望在切换到其中一种方式时,按钮上面的文字也可以跟着改变,起到提示作用. ...

  8. SpringData JPA整理

    一 首先熟悉几种jpa中的接口Repository,CrudRepository,PagingAndSortingRepository,JpaRepository,JpaSpecificationEx ...

  9. Linux系统中当前路径不加入PATH的原因

    主要是出于安全的考虑,由于系统默认是允许所有人在/tmp下写入任何文件的,万一有居心不良的用户或者黑客入侵到计算机,并在/tmp下面埋下木马,名字为ls,当用户用root身份登录后,到/tmp目录执行 ...

  10. Dubbo服务启动依赖检查

    dubbo 官方文档地址:http://dubbo.io/User+Guide-zh.htm 项目中存在服务之间存在循环依赖,启动时总是报错,通过修改启动检查check=false解决,下面是dubb ...