AtCoder Beginner Contest 347

C - Ideal Holidays

这场做得最头疼的题

分析

容易想到先用$(d_i+a+b-1)%(a+b)+1$把$d_i$映射到$[1,a+b]$的区间再排序,但由于未知星期一是哪天,我们也无法确定映射后的$d_i$是星期几

关于这个映射可以自己推一下

我们取a+b=7看几个例子

对于
3 2 5
1 2 9
经映射后得
1 2 2
取第一天是星期一,所有di都在[1,2]内
而对于
4 2 5
1 2 7 9
经映射再排序后得
1 2 2 7
这时取第一天为星期一,d[4]为星期日,取第七天为星期一,第二天为星期三,我们发现此时不能使所有di都在[1,2]内
但若是b=4,a=3
4 3 4
1 2 7 9
经映射再排序后得
1 2 2 7
此时取第七天为星期一,第二天为星期三,我们发现此时能使所有di都在[1,3]内

4 3 4
1 2 6 9
显然又无法实现

所以能得到:映射再排序后存在$d_i-d_{i-1}>b$就能够实现,但若是所有$d_i$原本就在[1,a]的范围内呢,要处理这种情况,我们可以使d[n+1]=d[0]+a+b,或者做一个特判

代码

void solve(){
int n,a,b,x;cin>>n>>a>>b;
vector<int>d;
rep(i,1,n){
cin>>x;
d.push_back((x+a+b-1)%(a+b)+1);//映射处理
}
sort(d.begin(),d.end());
d.push_back(d[0]+a+b);//相当于加上边界,处理一周七天时1 2 9的情况
rep(i,1,d.size()-1){
if(d[i]-d[i-1]>b){
cout<<"Yes";
return;
}
}
cout<<"No";
}

D - Popcount and XOR

贪心

分析

我们知道只有两数在二进制形式下当前位不同时,异或后的当前位才为1,反推过来,对于$x \oplus y=c$ ,c的二进制下当前位为1的话说明x或y的当前位一定是一1一0,而又由于要保证a与b个1都要刚好用尽,因此我们的贪心策略就是,对于c的二进制下为1的位,若a>b,则用a,此时x加上当前位的贡献,反之用b,y加上当前位的贡献,这样以后再判断是否满足ab相等且大于等于0

代码

void solve(){
int a,b,x=0,y=0,c;cin>>a>>b>>c;
rep(i,0,60){
if(c>>i&1){
if(a>b){
x+=(1ll<<i);//赛时甚至是用的快速幂(っ °Д °;)っ
a--;
}
else{
y+=(1ll<<i);
b--;
}
}
}
if(a!=b||a<0||b<0){
cout<<"-1";
return;
}
rep(i,0,60){
if(!(c>>i&1)&&a){
x+=(1ll<<i);
y+=(1ll<<i);
a--;
}
}
if(a){//还要特判a或者b是否有剩
cout<<"-1";
return;
}
cout<<x<<" "<<y;
}

AT-abc347(C,D)的更多相关文章

  1. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  2. 读书笔记:JavaScript DOM 编程艺术(第二版)

    读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...

  3. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  4. 谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  5. RxJS + Redux + React = Amazing!(译一)

    今天,我将Youtube上的<RxJS + Redux + React = Amazing!>翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: https:/ ...

  6. ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入

    原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...

  7. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...

  8. 恢复SQL Server被误删除的数据(再扩展)

    恢复SQL Server被误删除的数据(再扩展) 大家对本人之前的文章<恢复SQL Server被误删除的数据> 反应非常热烈,但是文章里的存储过程不能实现对备份出来的日志备份里所删数据的 ...

  9. 浅谈WEB页面提速(前端向)

    记得面试现在这份工作的时候,一位领导语重心长地谈道——当今的世界是互联网的世界,IT企业之间的竞争是很激烈的,如果一个网页的加载和显示速度,相比别人的站点页面有那么0.1秒的提升,那也是很大的一个成就 ...

  10. HTML中上传与读取图片或文件(input file)----在路上(25)

    input file相关知识简例 在此介绍的input file相关知识为: 上传照片及文件,其中包括单次上传.批量上传.删除照片.增加照片.读取图片.对上传的图片或文件的判断,比如限制图片的张数.限 ...

随机推荐

  1. New Questions

    1. C++/Qt 实现一个信号槽 #include <functional> #include <iostream> #include <vector> clas ...

  2. C++ sentry 如何压缩日志文件

    项目中在使用 sentry 上传事件的 attachment 函数过程中发现,附带的 log 文件是未压缩的,于是有了需求,即需要在 sentry 内部将未压缩的文件流压缩后再上传给服务器 这个需求看 ...

  3. Ansible的基本配置

    目录 定义主机和组 主机的定义 主机组的定于 主机组的嵌套 选择主机和组 匹配主机 使用通配符匹配 配置文件优先级 配置文件详解 配置文件段 配置文件参数说明 配置案例 1. 在节点上创建一个普通用户 ...

  4. 硬件开发笔记(十): 硬件开发基本流程,制作一个USB转RS232的模块(九):创建CH340G/MAX232封装库sop-16并关联原理图元器件

    前言   有了原理图,可以设计硬件PCB,在设计PCB之间还有一个协同优先动作,就是映射封装,原理图库的元器件我们是自己设计的.为了更好的表述封装设计过程,本文描述了CH340G和MAX232芯片封装 ...

  5. DataGear 使用静态HTML模板制作数据可视化看板

    DataGear 看板提供了导入静态 HTML 模板的功能,使您可以利用已有的任意 HTML 网页资源快速制作数据可视化看板. 首先,您需要准备一套已设置好布局的静态 HTML 模板,其中包含的 HT ...

  6. 【Azure 应用服务】App Service / Function App 修改系统时区为中国时区的办法(Azure中所有服务的默认时间都为UTC时间,转换为北京时间需要+8小时)

    问题描述 在Azure的 App Service / Function App 服务中,如果是在Windows系统中,可以通过添加Application Setting来转换为中国时间(WEBSITE ...

  7. 【Azure Redis 缓存】Redis的指标显示CPU为70%,而Service Load却达到了100%。这两个指标意义的解释及如何缓解呢?

    问题描述 为什么Redis的指标显示CPU为70%,而Service Load却达到了100%, 如何来解释这两个指标,以及如何来缓解这样的情况呢? 问题回答 CPU指标:该值表示的是用于 Redis ...

  8. expect tcl 摘录

    目录 部分参考来源说明 例子 expect命令 核心命令有三个 spawn.expect.send 其他expect命令 expect命令的选项 变量 tcl摘录 数据类型 符号 命令 其他说明 部分 ...

  9. Swagger (API框架,API 文档 与API 定义同步更新)

    1.依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring ...

  10. 异步小工具 asyncTool

    class asyncTool { constructor () { this.arr = [] this.ctx = {} } use (func) { const into = { func, n ...