CF R 635 div2 1337D Xenia and Colorful Gems 贪心 二分 双指针
考试的时候没想到一个很好的做法。
赛后也有一个想法。
可以考虑答案的样子 x,y,z 可以发现 一共有 x<=y<=z,z<=y<=z,y<=x<=z...
6种情况 考虑 y<=x<=z 观察这个形式 枚举x 发现y在<=x中显然取较大的那个更优 证明的话 x不变 在z不变的情况 y在符合条件的情况下自然 越小越不优 再讨论z越大的问题 再讨论y z一个变小一个变大的情况 综上可以发现 y z都是要满足条件的第一个数时最优。
考虑暴力枚举6种情况然后计算。
但是 对于x<=y<=z的情况 可以发现枚举x 此时上述条件不成立了 对于找到的z来说 y在x和z中间 这样y就可以不满足我们上面说的条件了 可以夹在x和z中间。
怎么解决?非常巧妙的一点是 对于这种情况 我们枚举y 然后就重新满足上述条件了。
我这破脑子 就是想不到啊.值得注意的是找前驱和后继 可以指针直接扫 觉得麻烦可以直接lower bound和upper bound.
const ll MAXN=100010;
ll T;
ll na,nb,nc,ans;
vector<int>g[3];
inline ll js(ll a,ll b,ll c){return pf(a-b)+pf(a-c)+pf(b-c);}
inline void solve(int a,int b,int c)//a<=b<=c;
{
for(ui i=0;i<g[b].size();++i)
{
ll y,z;y=upper_bound(g[a].begin(),g[a].end(),g[b][i])-g[a].begin()-1;
if(y!=-1)
{
z=lower_bound(g[c].begin(),g[c].end(),g[b][i])-g[c].begin();
if(z!=g[c].size())ans=min(ans,js(g[b][i],g[c][z],g[a][y]));
}
}
}
signed main()
{
freopen("1.in","r",stdin);
get(T);
while(T--)
{
g[0].clear();g[1].clear();
g[2].clear();
get(na);get(nb);get(nc);
rep(1,na,i)g[0].pb(read());
rep(1,nb,i)g[1].pb(read());
rep(1,nc,i)g[2].pb(read());
sort(g[0].begin(),g[0].end());
sort(g[1].begin(),g[1].end());
sort(g[2].begin(),g[2].end());
ans=INF;
//cout<<lower_bound(g[0].begin(),g[0].end(),10)-g[0].begin();
solve(1,0,2);solve(2,0,1);
solve(0,1,2);solve(2,1,0);
solve(0,2,1);solve(1,2,0);
putl(ans);
}
return 0;
}
CF R 635 div2 1337D Xenia and Colorful Gems 贪心 二分 双指针的更多相关文章
- CF #635D Xenia and Colorful Gems 枚举+二分
Xenia and Colorful Gems 题意 给出三个数组,在每个数组中选择一个数字x,y,z,,使得\((x-y)^2+(y-z)^2+(x-z)^2\)最小. 思路 我们假设x<=y ...
- Codeforces 1337D Xenia and Colorful Gems
题意 给你3个数组\(a, b\)和\(c\),最小化\((x-y)^2+(y-z)^2+(z-x)^2\),其中\(x \in a, y \in b, z \in c\). 解题思路 这题其实第一眼 ...
- CF R 635 div1 C Kaavi and Magic Spell 区间dp
LINK:Kaavi and Magic Spell 一打CF才知道自己原来这么菜 这题完全没想到. 可以发现 如果dp f[i][j]表示前i个字符匹配T的前j个字符的方案数 此时转移变得异常麻烦 ...
- CF R 639 div2 F Review 贪心 二分
LINK:Résumé Review 这道题让我眼前一亮没想到二分这么绝. 由于每个\(b_i\)都是局部的 全局只有一个限制\(\sum_{i=1}^nb_i=k\) 所以dp没有什么用 我们只需要 ...
- E CF R 85 div2 1334E. Divisor Paths
LINK:Divisor Paths 考试的时候已经想到结论了 可是质因数分解想法错了 导致自闭. 一张图 一共有D个节点 每个节点x会向y连边 当且仅当y|x,x/y是一个质数. 设f(d)表示d的 ...
- CF R 632 div2 1333F Kate and imperfection
赛后看了半天题 才把题目看懂 英语水平极差. 意思:定义一个集合S的权值为max{gcd(a,b)};且\(a\neq b\) 这个集合可以从1~n中选出一些数字 求出当集合大小为k时的最小价值. 无 ...
- CF R 632 div2 1333D Challenges in school №41
LINK:Challenges in school №41 考试的时候读错题了+代码UB了 所以wa到自闭 然后放弃治疗. 赛后发现UB的原因是 scanf读int类型的时候 宏定义里面是lld的类型 ...
- CF R 630 div2 1332 F Independent Set
LINK:Independent Set 题目定义了 独立集和边诱导子图.然而和题目没有多少关系. 给出一棵树 求\(\sum_{E'\neq \varnothing,E'\subset E}w(G( ...
- Xenia and Colorful Gems(二分--思维)
给定三个数组a,b,c. 要求从每个数字取一个数,使得两两之差和最小. 求出这个数. \(我又懵逼了.我是会O(n^3)的暴力啊,怎么办.\) \(\color{Red}{从结果看,选出来的三个数必定 ...
随机推荐
- mysql-如何删除主从同步
我用 change master 语句添加了一个主从同步, change master to master_host='localhost',master_user='slave',master_p ...
- python使用数组实现链表的策略分析
python实现链表数据结构:数组/节点与引用 使用数组策略: 使用数组存储指向其他对象的引用 数组存储空间过度分配 数组填满后,分配一个更大的数组,将旧数组的内容复制到新数组中 class Arra ...
- Redis RDB 分析工具 rdbtools 说明
背景 Redis是基于内存的KV数据库,内存作为存储介质,关注其内存的使用情况是一个重要指标,解析其内部的存储信息是给出优化方法和维护的最基本要求.解析内存有二种方法:第一个是通过scan遍历所有ke ...
- Scala 基础(十三):Scala 模式匹配(一)
1 match 应用案例 Scala的模式匹配 案例代码完整: package com.atguigu.base object MatchDemo { def main(args: Array[Str ...
- java 面向对象(二十八):异常 一
1. 异常的体系结构 * java.lang.Throwable * |-----java.lang.Error:一般不编写针对性的代码进行处理. * |-----java.lang.Exceptio ...
- 最大熵原理(The Maximum Entropy Principle)
https://wanghuaishi.wordpress.com/2017/02/21/%E5%9B%BE%E8%A7%A3%E6%9C%80%E5%A4%A7%E7%86%B5%E5%8E%9F% ...
- bzoj4395[Usaco2015 dec]Switching on the Lights*
bzoj4395[Usaco2015 dec]Switching on the Lights 题意: n*n个房间,奶牛初始在(1,1),且只能在亮的房间里活动.每当奶牛经过一个房间,就可以打开这个房 ...
- Python Ethical Hacking - WEB PENETRATION TESTING(1)
WHAT IS A WEBSITE Computer with OS and some servers. Apache, MySQL ...etc. Cotains web application. ...
- /dev/mapper/VolGroup00-LogVol00 满了,根目录存储垃圾文件导致磁盘满了
登录系统,df -H 发现磁盘存储快满了 解决办法 1. 使用命令查出根目录下大的垃圾文件 使用 du -sh /* | sort -nr 查看根目录下的的大文件,找的不要的 rm -rf 使用 fi ...
- xenomai内核解析之信号signal(二)---xenomai信号处理机制
xenomai信号 上篇文章讲了linux的信号在内核的发送与处理流程,现在加入了cobalt核,Cobalt内核为xenomai线程提供了信号机制.下面一一解析xenomai内核的信号处理机制. 1 ...