牛客G:

给定大小为N的数组a[],给定M组关系,让你重排a[],使得sum{M队关系的绝对值之差}最小。首先将a排序,然后依次把a填入数组。

假设i在二进制下有x个1,用dp[i]更新dp[i|(1<<j)],表示的是,将a[x+1]填在第j个位置。注意到a[]已经排序了,那么a[x]的贡献就是:+之前填的个数*a[x]-没填的个数*a[x];

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N=;
int a[N],p[N],e[N];
ll f[<<N];
int main(){
int n,m;
while(scanf("%d%d",&n,&m)!=EOF) {
for(int i=;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n); //重排,然后依次填入
for(int i=;i<n;i++) {
e[i]=;
p[i]=;
}
for(int i=;i<m;i++) {
int a,b;
scanf("%d%d",&a,&b);
a--;b--;
p[a]|=<<b;p[b]|=<<a;
e[a]++,e[b]++;
}
f[]=;
for(int i=;i<(<<n);i++) {
f[i]=1e12;
int k=__builtin_popcount(i)-; //表示这一轮填a[k]
for(int j=;j<n;j++) {
if(i&(<<j)) {//表示a[k]填在posj处
f[i]=min(f[i],f[i^(<<j)]+1LL*a[k]*(__builtin_popcount(p[j]&i)*-e[j]));
}
}
}
printf("%lld\n",f[(<<n)-]);
}
return ;
}

CF-E:

题意:给定M队关系(ai,bi),让你重排,使得{关系的位置绝对值之和}最小。

依然是枚举最后一个填谁,那么这一轮的贡献是满足(ai已经填入,bi未填入)的个数。

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int maxn=;
char c[maxn]; int dp[maxn],f[][];
int main()
{
int N,M;
scanf("%d%d%s",&N,&M,c+);
memset(dp,0x3f,sizeof(dp));
rep(i,,N-) f[c[i]-'a'][c[i+]-'a']++,f[c[i+]-'a'][c[i]-'a']++;
dp[]=;
rep(i,,(<<M)-){
int t=;
rep(j,,M-) {
if(i&(<<j)){
rep(k,,M-)
if(!(i&(<<k))) t+=f[j][k];
}
}
rep(j,,M-) if(!(i&(<<j))) dp[i|(<<j)]=min(dp[i|(<<j)],dp[i]+t);
}
printf("%d\n",dp[(<<M)-]);
return ;
}

2019牛客国庆day3-G &CF1238E的更多相关文章

  1. 2019牛客国庆集训派对day5

    2019牛客国庆集训派对day5 I.Strange Prime 题意 \(P=1e10+19\),求\(\sum x[i] mod P = 0\)的方案数,其中\(0 \leq x[i] < ...

  2. 2019 牛客国庆集训派对day1-C Distinct Substrings(exkmp+概率)

    链接:https://ac.nowcoder.com/acm/contest/1099/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  3. 计算几何板子题【2019牛客国庆集训派对day7——三角形和矩形】【多边形相交的面积】

    链接:https://ac.nowcoder.com/acm/contest/1112/J来源:牛客网 题目描述 Bobo 有一个三角形和一个矩形,他想求他们交的面积. 具体地,三角形和矩形由 8 个 ...

  4. 2019牛客国庆集训派对day7 A 2016

    链接:https://ac.nowcoder.com/acm/problem/52800来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K ...

  5. 2019牛客国庆集训派对day3

    E. Grid 大意: 给定$n\cdot m$个点的图, 初始无边, $q$个操作, $(1,a,b)$表示第$a$列到第$b$列全连起来, $(2,a,b)$表示把第$a$行到第$b$行全连起来, ...

  6. 2019牛客国庆集训派对day3 买一送一

    题目链接: 题意:有n个点,n-1条单向边,每个点都销售一类商品 问从点1开始走,买第一样商品类型为x,买第二样商品类型为y,问不同有序对<x,y>的数量 解法: col[i]表示这个点的 ...

  7. 2019牛客国庆集训派对day1

    C 存每个值存在的位置,枚举末尾的值,再枚举前面的值,哈希二分出最长相同的,即剩下的为不同的 D \(f_{i,j,k}\)为前i位,最后一个3因子在j,次因子在k G bitset处理有多少位置符合 ...

  8. 线性基求交(2019牛客国庆集训派对day4)

    题意:https://ac.nowcoder.com/acm/contest/1109/C 问你有几个x满足A,B集合都能XOR出x. 思路: 就是线性基求交后,有几个基就是2^几次方. #defin ...

  9. 2019牛客国庆集训派对day1(A, B E F K)

    链接:https://ac.nowcoder.com/acm/contest/1099#question A:可知符合条件的图中间肯定存在一个由1构成的矩形,找到由1构成矩形的边界,判断出现的1的数量 ...

随机推荐

  1. [LeetCode] 31. Next Permutation 下一个排列

    Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...

  2. Django中render_to_response和render的区别(转载)

    转载地址:https://www.douban.com/note/278152737/ 自django1.3开始:render()方法是render_to_response的一个崭新的快捷方式,前者会 ...

  3. Spring 常犯的十大错误,这坑你踩过吗?

    阅读本文大概需要 9 分钟. 1.错误一:太过关注底层 我们正在解决这个常见错误,是因为 “非我所创” 综合症在软件开发领域很是常见.症状包括经常重写一些常见的代码,很多开发人员都有这种症状. 虽然理 ...

  4. c++ 使用 vcpkg

    1. 打开下载地址:https://github.com/Microsoft/vcpkg 2. 直接下载到本地某个盘 3. 配置环境变量: 4. 打开下载到本地的vcpkg有可能叫vcpkg-mast ...

  5. Python连载31-threading的使用

    一. 例子:我们对传参是有要求的必须传入一个元组,否则报错 二. import _thread as thread import time def loop1(in1): print("St ...

  6. Python处理数据集-2

    原数据集的数据格式: 每行为:(test_User, test_Item) negativeItem1 negativeItem2 negativeItem3 …… negativeItem99 即每 ...

  7. SpringBoot之Swagger2文档生成

    SpringBoot之Swagger2文档生成 1.Swagger2介绍 编写和维护接口文档是每个程序员的职责,前面我们已经写好的接口现在需要提供一份文档,这样才能方便调用者使用.考虑到编写接口文档是 ...

  8. 另一种缓存,Spring Boot 整合 Ehcache

    用惯了 Redis ,很多人已经忘记了还有另一个缓存方案 Ehcache ,是的,在 Redis 一统江湖的时代,Ehcache 渐渐有点没落了,不过,我们还是有必要了解下 Ehcache ,在有的场 ...

  9. 深入理解react-native

    欢迎转载,请支持原创,保留原文链接:http://blog.ilibrary.me http://blog.ilibrary.me/2016/12/25/react-native-internal ( ...

  10. 脱离 WebView 的通信 JavaScriptCore

    JavascriptCore JavascriptCore 一直作为 WebKit 中内置的 JS 引擎使用,在 iOS7 之后,Apple 对原有的 C/C++ 代码进行了 OC 封装,成为系统级的 ...