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的更多相关文章

  1. On cloud, be cloud native

    本来不想起一个英文名,但是想来想去都没能想出一个简洁地表述该意思的中文释义,所以就用了一个英文名称,望见谅. Cloud Native是一个刚刚由VMware所提出一年左右的名词.其表示在设计并实现一 ...

  2. 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(六)

    (六)在Website Cloud中添加site 1新建Website,并打开 使用前面创建的用户 newbee@waplab.com 登录租户Portal,新建一个website 新建完成后, 可以 ...

  3. 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(五)

    (五)注册Website Cloud 1 注册Website Cloud 添加Website Cloud   连接Website Cloud 注意, endpoint 是使用Management Se ...

  4. 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

    (四)搭建Website Cloud环境 1安装CONTROLLER主机 在开始安装Web site Cloud之前,读者应该对该服务的拓扑结构有个大概了解. 如图: Controller是非常重要的 ...

  5. 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(二)

    前言 (二)建立虚拟网络环境,以及域控和DNS服务器   1搭建虚拟网络环境 在Azure上创建虚拟网络.本例选择的是东南亚数据中心.后面在创建虚机的时候,也选择这个数据中心. VNet Name: ...

  6. spring/spring boot/spring cloud开发总结

    背景        针对RPC远程调用,都在使用dubbo.dubbox等,我们也是如此.由于社区暂停维护.应对未来发展,我们准备尝试新技术(或许这时候也不算什么新技术了吧),选择使用了spring ...

  7. Oracle Sales Cloud:管理沙盒(定制化)小细节2——使用对象触发器更新数字字段

    在上一篇 "管理沙盒(定制化)小细节1" 的随笔中,我们使用公式法在 "业务机会" 对象(单头)上建立了 "利润合计" 字段,并将它等于 & ...

  8. Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面

    Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...

  9. Oracle Sales Cloud:报告和分析(BIEE)小细节2——利用变量和过滤器传参(例如,根据提示展示不同部门的数据)

    在上一篇随笔中,我们建立了部门和子部门的双提示,并将部门和子部门做了关联.那么,本篇随笔我们重点介绍利用建好的双提示进行传参. 在操作之前,我们来看一个报告和分析的具体需求: [1] 两个有关联的提示 ...

  10. Oracle Sales Cloud:报告和分析(BIEE)小细节1——创建双提示并建立关联(例如,部门和子部门提示)

    Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的客户商机管理系统,通过提供丰富的功能来帮助提高销售效率,更好地去了解客户,发现和追踪商机,为最终的销售成交 (d ...

随机推荐

  1. Github的.gitignore忽略文件

    Git中有一个非常重要的一个文件-----.gitignore 1.当然如果已经push了怎么办?当然也有解决方法,如下: 有时候在项目开发过程中,突然心血来潮想把某些目录或文件加入忽略规则,按照上述 ...

  2. CORE8051-APB总线

    1 APB总线 core8051s内核支持APB3总线,APB writebuffer 为{XWB3, XWB2, XWB1, ACC}; 写访问 对FC00以上地址写值,即表示APB写操作,值为(X ...

  3. leetcode 655. 输出二叉树 【时间击败100.00%】 【内存击败96.49%】

    1 public List<List<String>> printTree(TreeNode root) { 2 ArrayList<List<String> ...

  4. docker打包java

    java1.8镜像 localtime文件为/etc/localtime 将本地此文件打包到docker镜像中 FROM openjdk:8-jdk-alpine MAINTAINER geyanan ...

  5. 重写react-navigation的stackNaviagtor产生的默认导航栏header样式

    主要是默认的stackNavigator产生的效果,很难看 重写这个阴影,在当前路由配置的 navigationOptions里的 headerStyle写样式 navigationOptions:{ ...

  6. python基础篇 12-函数+文件读写+json练习作业

    需求: 写一个管理商品的程序,商品文件格式在a.json里面 提供商品的增删改查功能 choice = input('请输入你的选择:1.查看商品 2.新增商品 3.修改商品 4.删除商品') #1. ...

  7. python 深拷贝及浅拷贝区别

    深拷贝及浅拷贝区别 浅拷贝copy: 可变类型:(列表,字典,集合)copy函数对可变类型的第一层对象进行拷贝,对拷贝的对象开辟新的内存空间进行存储,不会拷贝对象内部的子对象 不可变类型:(数字,字符 ...

  8. Liunx安装eclipse-mosquitto之docker容器

    1.docker拉取 docker pull eclipse-mosquitto 2.查看镜像 docker images 3.建立配置目录 mkdir -p /mnt/mosquitto/confi ...

  9. 【python】第一模块 步骤四 第一课、初始正则表达式

    第一课.初始正则表达式 一.课程介绍 1.1 课程概要 步骤介绍 正则表达式入门及应用 正则的进阶 案例 综合项目实战 二.正则表达式的基本操作(多敲代码多做练习) 2.1 什么是正则表达式 什么是正 ...

  10. 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 ...