I - Cloud Retainer's Game
I - Cloud Retainer's Game
传送门: I. Cloud Retainer's Game (codeforces.com)
题意:
在坐标轴上有2个边界:y=0和y=H。有n个质点(木板),m个宝物(硬币)。一个小球从(0,0)点开始移动方向为。
小球遇到木板或边界之后,y轴方向上的速度取反,即变成。
问删掉任意个质点之后,小球最多遇到多少个宝物。
附上题面下面的图片帮助理解:
解法:
移动有两个方向:分别是方向和方向,表达式分别为 \((x+y)\%2H=m\)和\((2H-x+y)\%2H=m\)
也就是说,对于特征值m的路线,可以通过木板反弹在这两个表达式切换,或者删掉木板保持表达式。
令\(dp_i\)为特征值为i的线路中遇到的宝物的最大数量。
我们可以按照x的大小从大到小往起点方向dp。(因为起点是所有路线一定经过且唯一确定的,其他点不一定是经过的,所以\(dp_0\)一定是最大的,也即答案)
对于一个木板,我们可以算出经过这个木板的两个方向的线路的特征值 \((x+y)\%2H=m1\)和\((2H-x+y)\%2H=m2\)。因为可以删或不删从而在两个方向任意选择,所以\(dp_{m1},dp_{m2}\)都应该取\(max(dp_{m1},dp_{m2})\)。
对于一个宝物,我们可以算出经过这个宝物的两个方向的线路的特征值 \((x+y)\%2H=m1\)和\((2H-x+y)\%2H=m2\)。两个线路的贡献的加一即可。
代码实现:
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e6+10;
signed main(){
ios::sync_with_stdio(false);
int T;cin>>T;
while(T--){
vector<array<int,3>>ve;
map<int,int>ans;
int H;cin>>H;
int n;cin>>n;
for(int i=1;i<=n;i++){
int x,y;cin>>x>>y;
ve.push_back({x,y,0});
}
int m;cin>>m;
for(int i=1;i<=m;i++){
int x,y;cin>>x>>y;
ve.push_back({x,y,1});
}
sort(ve.begin(),ve.end(),[](array<int,3>x,array<int,3>y){
return x[0]>y[0];
});
for(auto i:ve){
int x=i[0],y=i[1];
int a=(x+y)%(2*H),b=(2*H-y+x)%(2*H);
if(i[2]){
ans[a]++;
ans[b]++;
}
else {
ans[a]=ans[b]=max(ans[a],ans[b]);
}
}
cout<<ans[0]<<"\n";
}
}
I - Cloud Retainer's Game的更多相关文章
- On cloud, be cloud native
本来不想起一个英文名,但是想来想去都没能想出一个简洁地表述该意思的中文释义,所以就用了一个英文名称,望见谅. Cloud Native是一个刚刚由VMware所提出一年左右的名词.其表示在设计并实现一 ...
- 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(六)
(六)在Website Cloud中添加site 1新建Website,并打开 使用前面创建的用户 newbee@waplab.com 登录租户Portal,新建一个website 新建完成后, 可以 ...
- 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(五)
(五)注册Website Cloud 1 注册Website Cloud 添加Website Cloud 连接Website Cloud 注意, endpoint 是使用Management Se ...
- 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)
(四)搭建Website Cloud环境 1安装CONTROLLER主机 在开始安装Web site Cloud之前,读者应该对该服务的拓扑结构有个大概了解. 如图: Controller是非常重要的 ...
- 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(二)
前言 (二)建立虚拟网络环境,以及域控和DNS服务器 1搭建虚拟网络环境 在Azure上创建虚拟网络.本例选择的是东南亚数据中心.后面在创建虚机的时候,也选择这个数据中心. VNet Name: ...
- spring/spring boot/spring cloud开发总结
背景 针对RPC远程调用,都在使用dubbo.dubbox等,我们也是如此.由于社区暂停维护.应对未来发展,我们准备尝试新技术(或许这时候也不算什么新技术了吧),选择使用了spring ...
- Oracle Sales Cloud:管理沙盒(定制化)小细节2——使用对象触发器更新数字字段
在上一篇 "管理沙盒(定制化)小细节1" 的随笔中,我们使用公式法在 "业务机会" 对象(单头)上建立了 "利润合计" 字段,并将它等于 & ...
- Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面
Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...
- Oracle Sales Cloud:报告和分析(BIEE)小细节2——利用变量和过滤器传参(例如,根据提示展示不同部门的数据)
在上一篇随笔中,我们建立了部门和子部门的双提示,并将部门和子部门做了关联.那么,本篇随笔我们重点介绍利用建好的双提示进行传参. 在操作之前,我们来看一个报告和分析的具体需求: [1] 两个有关联的提示 ...
- Oracle Sales Cloud:报告和分析(BIEE)小细节1——创建双提示并建立关联(例如,部门和子部门提示)
Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的客户商机管理系统,通过提供丰富的功能来帮助提高销售效率,更好地去了解客户,发现和追踪商机,为最终的销售成交 (d ...
随机推荐
- Github的.gitignore忽略文件
Git中有一个非常重要的一个文件-----.gitignore 1.当然如果已经push了怎么办?当然也有解决方法,如下: 有时候在项目开发过程中,突然心血来潮想把某些目录或文件加入忽略规则,按照上述 ...
- CORE8051-APB总线
1 APB总线 core8051s内核支持APB3总线,APB writebuffer 为{XWB3, XWB2, XWB1, ACC}; 写访问 对FC00以上地址写值,即表示APB写操作,值为(X ...
- leetcode 655. 输出二叉树 【时间击败100.00%】 【内存击败96.49%】
1 public List<List<String>> printTree(TreeNode root) { 2 ArrayList<List<String> ...
- docker打包java
java1.8镜像 localtime文件为/etc/localtime 将本地此文件打包到docker镜像中 FROM openjdk:8-jdk-alpine MAINTAINER geyanan ...
- 重写react-navigation的stackNaviagtor产生的默认导航栏header样式
主要是默认的stackNavigator产生的效果,很难看 重写这个阴影,在当前路由配置的 navigationOptions里的 headerStyle写样式 navigationOptions:{ ...
- python基础篇 12-函数+文件读写+json练习作业
需求: 写一个管理商品的程序,商品文件格式在a.json里面 提供商品的增删改查功能 choice = input('请输入你的选择:1.查看商品 2.新增商品 3.修改商品 4.删除商品') #1. ...
- python 深拷贝及浅拷贝区别
深拷贝及浅拷贝区别 浅拷贝copy: 可变类型:(列表,字典,集合)copy函数对可变类型的第一层对象进行拷贝,对拷贝的对象开辟新的内存空间进行存储,不会拷贝对象内部的子对象 不可变类型:(数字,字符 ...
- Liunx安装eclipse-mosquitto之docker容器
1.docker拉取 docker pull eclipse-mosquitto 2.查看镜像 docker images 3.建立配置目录 mkdir -p /mnt/mosquitto/confi ...
- 【python】第一模块 步骤四 第一课、初始正则表达式
第一课.初始正则表达式 一.课程介绍 1.1 课程概要 步骤介绍 正则表达式入门及应用 正则的进阶 案例 综合项目实战 二.正则表达式的基本操作(多敲代码多做练习) 2.1 什么是正则表达式 什么是正 ...
- MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
错误:Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 原因:同一个ip ...