//n件物品,m种关系,(有关系的2个不能在同一组)
//把所有物品分为2组,希望最后2组的差值尽可能小,输出较大者
/*
二分图涂色+可行性(01)背包
dp[i] =1表示 最后差值为i可行
建图后,对于每个连通分量记录差值,来求所有的可行
*/
#include<bits/stdc++.h>
using namespace std;
int t,n,m;
#define N 250
#define M 102000
int a[N],head[N],sum;
int cnt,vis[N];
int dp[M],dp1[M];
int sum1=,sum2=;
void init(){
cnt = ;
for(int i =;i<N;i++) {
head[i] = -;
vis[i] =;//多组输入
}
}
struct Node{
int u,v,nex;
}e[N*];
void add(int u,int v)
{
e[cnt].u=u;e[cnt].v=v;
e[cnt].nex=head[u];head[u]=cnt++;
}
void dfs(int x,int rt){
vis[x] = ;
if(rt==)
sum1+=a[x];
else{
sum2+=a[x];
}
for(int i =head[x];i!=-;i=e[i].nex){
int v = e[i].v;
if(!vis[v])
dfs(v,rt^);//0^1=1,1^1=0
}
}
int main()
{
scanf("%d",&t);
while(t--)
{
init();
scanf("%d%d",&n,&m);
int x,y;
sum =;
for(int i =;i<=n;i++)
{
scanf("%d",&a[i]);
sum+=a[i]/;
a[i]/=;//题目说明都是100的倍数
}
for(int i =;i<m;i++) {
scanf("%d%d",&x,&y);
add(x,y);add(y,x);//无向图
} int num;
for(int i =;i<=sum;i++) dp[i] = ;
dp[] = ;//dp[0]一定先设为1,来引入第一个差值
for(int i =;i<=n;i++) {
if(!vis[i]){
sum1=,sum2=;
dfs(i,);
num = abs(sum1-sum2);
//printf("%d %d %d\n",sum1,sum2,num);
for(int j=sum;j>=;j--){
if(dp[j]){
//如 :0,j. 0 ,num 或者 j,0.0,num
if(abs(j+num)<=sum) dp1[abs(j+num)] =;
dp1[abs(j-num)] =;
}
}
for(int j =sum;j>=;j--){
dp[j] = dp1[j],dp1[j] = ;
}
}
}
//一定需要2个dp 数组,利用dp1一直更新到所有的物品都取完
for(int i =;i<=sum;i++) {
if(dp[i]){ printf("%d\n",(sum+i)/*);
break;
}
}
}
return ;
}

2019 西安邀请赛 D的更多相关文章

  1. 2019 西安邀请赛 M

    Problem Description There are n planets ∼n. Each planet is connected to other planets through some t ...

  2. ACM-ICPC 2019 西安邀请赛 D.Miku and Generals(二分图+可行性背包)

    “Miku is matchless in the world!” As everyone knows, Nakano Miku is interested in Japanese generals, ...

  3. 计蒜客 39272.Tree-树链剖分(点权)+带修改区间异或和 (The 2019 ACM-ICPC China Shannxi Provincial Programming Contest E.) 2019ICPC西安邀请赛现场赛重现赛

    Tree Ming and Hong are playing a simple game called nim game. They have nn piles of stones numbered  ...

  4. 2019南昌邀请赛网络预选赛 M. Subsequence

    传送门 题意: 给出一个只包含小写字母的串 s 和n 个串t,判断t[i]是否为串 s 的子序列: 如果是,输出"YES",反之,输出"NO": 坑点: 二分一 ...

  5. 计蒜客 39280.Travel-二分+最短路dijkstra-二分过程中保存结果,因为二分完最后的不一定是结果 (The 2019 ACM-ICPC China Shannxi Provincial Programming Contest M.) 2019ICPC西安邀请赛现场赛重现赛

    Travel There are nn planets in the MOT galaxy, and each planet has a unique number from 1 \sim n1∼n. ...

  6. 计蒜客 39279.Swap-打表找规律 (The 2019 ACM-ICPC China Shannxi Provincial Programming Contest L.) 2019ICPC西安邀请赛现场赛重现赛

    Swap There is a sequence of numbers of length nn, and each number in the sequence is different. Ther ...

  7. 计蒜客 39270.Angel's Journey-简单的计算几何 ((The 2019 ACM-ICPC China Shannxi Provincial Programming Contest C.) 2019ICPC西安邀请赛现场赛重现赛

    Angel's Journey “Miyane!” This day Hana asks Miyako for help again. Hana plays the part of angel on ...

  8. 计蒜客 39268.Tasks-签到 (The 2019 ACM-ICPC China Shannxi Provincial Programming Contest A.) 2019ICPC西安邀请赛现场赛重现赛

    Tasks It's too late now, but you still have too much work to do. There are nn tasks on your list. Th ...

  9. The 2019 ACM-ICPC China Shannxi Provincial Programming Contest (西安邀请赛重现) J. And And And

    链接:https://nanti.jisuanke.com/t/39277 思路: 一开始看着很像树分治,就用树分治写了下,发现因为异或操作的特殊性,我们是可以优化树分治中的容斥操作的,不合理的情况只 ...

随机推荐

  1. Oracle执行过程中出现的问题

    ORA-02292: 违反完整约束条件 (用户名.约束名) - 已找到子记录 造成原因:删除该表时,有依赖该表的子表数据,需要删除该条记录或者禁用约束. 查看约束所在的表:select * from ...

  2. POJ3259-Wormholes-( spfa || Bellman_Ford )

    题意:有n块田,之间有m条无向边表示路径,权值表示走过需要花费的时间.有w对虫洞,虫洞是单向的,表示穿越一定时间到过去,并且回到虫洞指向的点,问一个人有没有可能通过虫洞回到某个起点,并且在从这个起点出 ...

  3. 使用nodegui 开发高性能的跨平台桌面端应用

    nodegui 是基于qt + nodejs 的跨平台桌面开发方案,官方同时也提供了很不错的文档 简单使用 使用官方的starter clone 代码 git clone https://github ...

  4. ACM数据结构-单调栈、队列

    1.最大数 代码: #include <stdio.h> #include <memory.h> #include <math.h> #include <st ...

  5. mark一下咕掉的题目

    蒟蒻才普及组呀~ 大佬别D我 等集中补一下 CF980F:咋说捏,我觉得要联赛了做这题有点浪费时间,等想颓废了再来写写叭qwq 215E/279D/288E/331C3/431D/433E/750G/ ...

  6. 实现mysql的读写分离(mysql-proxy)____1(mysql的主从复制,基于gtid的主从复制,半同步复制,组复制)

    主从复制原理: 从库生成两个线程,一个I/O线程,一个SQL线程: i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中:主库会生成一个 log ...

  7. 【Beta】Scrum Meeting 7 & 与助教谈话

    前言 Beta阶段第7次会议在5月12日22:00由PM在大运村一公寓三层召开, 时长30min. 任务分配 姓名 今日任务 明日任务 困难 周博闻 修复修改密码问题#54添加主页公告栏 #57(调整 ...

  8. UE运行sas配置-WIN10

    1.在UE中配置SAS运行的工具: UE--高级---用户工具--工具配置 在命令行输入"D:\soft\SASHome\SASFoundation\9.4\sas.exe" -c ...

  9. HTML5中的Web Worker技术

    为了让后台程序更好的执行,在HTML5中设计了Web Worker技术.Web Worker的产生主要是考虑到在HTML4中JavaScript Web程序都是以单线程的方式执行的,一旦前面的脚本花费 ...

  10. 【Eclipse】Eclipse如何导出java项目为jar包

    1.首先确定要导出的项目 从项目结构可以看出,笔者的项目是一个Dynamic Java Project.com/db下面有一个config的数据库配置文件.WEB-INF/lib文件夹下面有依赖的ja ...