Problem F Free Weights
二分答案。
思路:对于二分给定的mid,即当前允许移动的最大重量,我们可以把小于改重量的标记一下,然后把没有标记的按照顺序放到另一个数组,然后判断是否满足两两相同。
#include<bits/stdc++.h>
using namespace std;
const int N=1E6+;
int arr[N];
int brr[N];
int crr[N];
bool mark[N],mark1[N];
const int INF=1e9+;
const int mm=1e9;
int n; bool judge(int x){
memset(mark,,sizeof(mark));
memset(mark1,,sizeof(mark1)); for(int i=;i<=n;i++) {
if(arr[i]<=x) mark[i]=;
if(brr[i]<=x) mark1[i]=;
} int pos=;
for(int i=;i<=n;i++){
if(mark[i]==) crr[++pos]=arr[i];
} if(pos&) return ;
for(int i=;i<=pos;i+=){
if(crr[i]!=crr[i+]) return ;
}
pos=;
for(int i=;i<=n;i++){
if(mark1[i]==) crr[++pos]=brr[i];
}
if(pos&) return ;
for(int i=;i<=pos;i+=) {
if(crr[i]!=crr[i+]) return ;
}
return ;
} void solve(){
cin>>n;
for(int i=;i<=n;i++) scanf("%d",&arr[i]);
for(int j=;j<=n;j++) scanf("%d",&brr[j]);
int l=,r=mm;
int ans=INF;
while(l<=r){
int mid=(l+r)/;
if(judge(mid)){
r=mid-;
ans=min(ans,mid);
}
else l=mid+;
} cout<<ans<<endl;
} int main(){
solve();
return ;
}
Problem F Free Weights的更多相关文章
- 实验12:Problem F: 求平均年龄
		
Home Web Board ProblemSet Standing Status Statistics Problem F: 求平均年龄 Problem F: 求平均年龄 Time Limit: ...
 - The Ninth Hunan Collegiate Programming Contest (2013)   Problem F
		
Problem F Funny Car Racing There is a funny car racing in a city with n junctions and m directed roa ...
 - Codeforces Gym 100500F Problem F. Door Lock 二分
		
Problem F. Door LockTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100500/at ...
 - Codeforces Gym 100002  Problem F "Folding" 区间DP
		
Problem F "Folding" Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/ ...
 - Codeforces Gym 100286F Problem F. Fibonacci System 数位DP
		
Problem F. Fibonacci SystemTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudg ...
 - Problem F: Exponentiation
		
Problem F: ExponentiationTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 4 Solved: 2[Submit][Status][W ...
 - Problem F: 合唱比赛开始了!
		
Problem F: 合唱比赛开始了! Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 440 Solved: 201[Submit][Status][ ...
 - 几何入门合集 gym101968 problem F. Mirror + gym102082 Problem F Fair Chocolate-Cutting + gym101915 problem B. Ali and Wi-Fi
		
abstract: V const & a 加速 F. Mirror 题意 链接 问题: 有n个人在y=0的平面上(及xoz平面).z=0平面上有一面镜子(边平行于坐标轴).z=a平面上有q个 ...
 - Problem F  Plug It In!
		
题目链接:https://cn.vjudge.net/contest/245468#problem/F 大意:给你插座和电器的对应关系,有多个电器对应一个插座的情况,但是一个插座只能供一个电器使用,现 ...
 
随机推荐
- [状态压缩,折半搜索] 2019牛客暑期多校训练营(第九场)Knapsack Cryptosystem
			
链接:https://ac.nowcoder.com/acm/contest/889/D来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言52428 ...
 - 在Keras中可视化LSTM
			
作者|Praneet Bomma 编译|VK 来源|https://towardsdatascience.com/visualising-lstm-activations-in-keras-b5020 ...
 - 为何Keras中的CNN是有问题的,如何修复它们?
			
在训练了 50 个 epoch 之后,本文作者惊讶地发现模型什么都没学到,于是开始深挖背后的问题,并最终从恺明大神论文中得到的知识解决了问题. 上个星期我做了一些实验,用了在 CIFAR10 数据集上 ...
 - What is MongoDB and For What?
			
1.MongoDB是什么? MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统.没错MongoDB就是数据库,是NoSQL类型的数据库 2.为什么要用MongoDB? (1)Mo ...
 - [POJ1190]生日蛋糕<DFS>
			
题目链接:http://poj.org/problem?id=1190 题看上去确实很复杂 涉及到半径面积这些,其实看着真的很头疼 但是除去这些就是剪枝优化的dfs算法 #include<cst ...
 - vi文本编辑器的学习
			
vi文本编辑器的启动与退出 启动:快捷键Ctrl+Alt+t进入终端, 在系统提示符($或#)的提示下,输入vi <文件名称>,可以自动载入你要编辑的文件或者新建一个文件. 退出:在指令模 ...
 - 如何让Java应用成为杀不死的小强?(中篇)
			
各位坐稳扶好,我们要开车了.不过在开车之前,我们还是例行回顾一下上期分享的要点. 上期我们抛了一个砖:“如何实现 Java 应用进程的状态监控,如果被监控的进程 down 掉,是否有机制能启动起来?” ...
 - CountDownLatch是个啥?
			
文章篇幅较短,对于一些AQS的顶级方法例如releaseShared并没有做过深的讲解,因为这些算是AQS的范畴,关于AQS可以看下另一篇文章--AQS. CountDownLatch一般被称作&q ...
 - Html 慕课园编程练习9-22
			
题目要求: 制作一个表格,显示班级的学生信息. 要求: 1. 鼠标移到不同行上时背景色改为色值为 #f2f2f2,移开鼠标时则恢复为原背景色 #fff 2. 点击添加按钮,能动态在最后添加一行 3. ...
 - flask  from_object和from_pyfile的区别
			
flask from_object和from_pyfile的区别 from_object接受的是一个模块对象,需求导入 from_pyfile接受的是一个文件名的字符串,文件可以不是py文件也可以是 ...