Codeforces Round #735 (Div. 2) 题解
比赛地址:https://codeforces.com/contest/1554。
只有 ABCD 的题解,E 不会。
A
答案是 \(\max_i\{a_ia_{i+1}\}\)。证明:(反证)如果我们取 \(a_i,a_{i+1},a_{i+2}\) 作为答案,那么取这三个数中最大的两个数作为答案一定更优。
typedef long long ll;
const int N=3e5;
int n,a[N+10];
void mian(){
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",a+i);
ll ans=0;
for(int i=1;i<n;i++)
ans=std::max(ans,1LL*a[i]*a[i+1]);
printf("%lld\n",ans);
}
B
当 \(i,j\) 很大时,\(i\cdot j\) 是 \(\mathcal O(n^2)\) 级别的,而 \(k\cdot (a_i\operatorname{OR}a_j)\) 是 \(\mathcal O(100n)\) 级别的,所以只枚举后面几项即可。
typedef long long ll;
const int N=1e5;
int n,k,a[N+10];
void mian(){
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
scanf("%d",a+i);
ll ans=-ll(1e18);
for(int i=std::max(1,n-140);i<=n;i++)
for(int j=i+1;j<=n;j++)
ans=std::max(ans,1LL*i*j-1LL*k*(a[i]|a[j]));
printf("%lld\n",ans);
}
C
结论:当 \(i\) 取遍 \(0\sim 2^k-1,k\in\mathbb N\) 中的所有数时,\(n\oplus i\) 的值一定是一个连续的区间。
所以我们遍历 \(m\) 在二进制下的每一位,如果第 \(i\) 位是 \(1\),那么我们就把 \(0\sim 2^i-1\) 所对应的连续区间搞出来,最后把这些区间合并即可。
代码非常难看:
void mian(){
int n,m;
scanf("%d%d",&n,&m);
std::pair<int,int> a[40];
for(int i=0;i<=35;i++)a[i].first=a[i].second=0x3f3f3f3f;
int ans=0,now=0; // now 表示只考虑第 i 位和比它高的位时 n xor m 的值
for(int i=30;i>=0;i--){
if((m>>i)&1)
a[i].first=now|(n&(1<<i)),a[i].second=now|(n&(1<<i))|(((1<<i)-1));
now|=(n&(1<<i))^(((m>>i)&1)<<i);
}
a[31].first=now,a[31].second=now;
std::sort(a,a+35);
if(a[0].first>0)puts("0");
else{
for(int i=1;i<=30;i++)
if(a[i-1].second!=a[i].first-1){
printf("%d\n",a[i-1].second+1);
break;
}
}
}
D
如果 \(n\) 是偶数,那么答案为:\(\underbrace{\texttt{aa}\cdots\texttt{a}}_{\frac n2-1\ \text{times}}\!\texttt{b}\underbrace{\texttt{aa}\cdots\texttt{a}}_{\frac n2\ \text{times}}\)。
如果 \(n\) 是奇数,那么答案为:\(\underbrace{\texttt{aa}\cdots\texttt{a}}_{\left\lfloor\frac n2\right\rfloor-1\ \text{times}}\!\!\!\texttt{bc}\underbrace{\texttt{aa}\cdots\texttt{a}}_{\left\lfloor\frac n2\right\rfloor\ \text{times}}\)。
void mian(){
int n;
scanf("%d",&n);
if(n==1)puts("a");
else if(n&1){
for(int i=1;i<=(n-2)/2;i++)
printf("a");
printf("bc");
for(int i=1;i<=(n-2)/2+1;i++)
printf("a");
puts("");
}
else{
for(int i=1;i<=(n-1)/2;i++)
printf("a");
printf("b");
for(int i=1;i<=n/2;i++)
printf("a");
puts("");
}
}
Codeforces Round #735 (Div. 2) 题解的更多相关文章
- Codeforces Round #182 (Div. 1)题解【ABCD】
Codeforces Round #182 (Div. 1)题解 A题:Yaroslav and Sequence1 题意: 给你\(2*n+1\)个元素,你每次可以进行无数种操作,每次操作必须选择其 ...
- Codeforces Round #608 (Div. 2) 题解
目录 Codeforces Round #608 (Div. 2) 题解 前言 A. Suits 题意 做法 程序 B. Blocks 题意 做法 程序 C. Shawarma Tent 题意 做法 ...
- Codeforces Round #525 (Div. 2)题解
Codeforces Round #525 (Div. 2)题解 题解 CF1088A [Ehab and another construction problem] 依据题意枚举即可 # inclu ...
- Codeforces Round #528 (Div. 2)题解
Codeforces Round #528 (Div. 2)题解 A. Right-Left Cipher 很明显这道题按题意逆序解码即可 Code: # include <bits/stdc+ ...
- Codeforces Round #466 (Div. 2) 题解940A 940B 940C 940D 940E 940F
Codeforces Round #466 (Div. 2) 题解 A.Points on the line 题目大意: 给你一个数列,定义数列的权值为最大值减去最小值,问最少删除几个数,使得数列的权 ...
- Codeforces Round #677 (Div. 3) 题解
Codeforces Round #677 (Div. 3) 题解 A. Boring Apartments 题目 题解 简单签到题,直接数,小于这个数的\(+10\). 代码 #include &l ...
- Codeforces Round #665 (Div. 2) 题解
Codeforces Round #665 (Div. 2) 题解 写得有点晚了,估计都官方题解看完切掉了,没人看我的了qaq. 目录 Codeforces Round #665 (Div. 2) 题 ...
- Codeforces Round #160 (Div. 1) 题解【ABCD】
Codeforces Round #160 (Div. 1) A - Maxim and Discounts 题意 给你n个折扣,m个物品,每个折扣都可以使用无限次,每次你使用第i个折扣的时候,你必须 ...
- Codeforces Round #383 (Div. 2) 题解【ABCDE】
Codeforces Round #383 (Div. 2) A. Arpa's hard exam and Mehrdad's naive cheat 题意 求1378^n mod 10 题解 直接 ...
随机推荐
- apache jmeter下载与安装
JMeter是Apache软件基金会的产品,用于对静态的和动态的资源性能进行测试.jmeter可以运行在多个平台上,如Windows和Linux,本文讲的是在Windows安装jmeter. 工具/原 ...
- 08:jQuery(01)
今日内容概要 jQuery(封装了js的前端框架(模块)) 很容易与DOM操作混淆 jQuery """ jQuery内部封装了原生的js代码(还额外添加了很多的功能) ...
- 第三节:Redis缓存雪崩、击穿、穿透、双写一致性、并发竞争、热点key重建优化、BigKey的优化 等解决方案
一. 缓存雪崩 1. 含义 同一时刻,大量的缓存同时过期失效. 2. 产生原因和后果 (1). 原因:由于开发人员经验不足或失误,大量热点缓存设置了统一的过期时间. (2). 产生后果:恰逢秒杀高峰, ...
- 史上最详细的Air7xx驱动安装教程
由于Air7xx系列4G模块需要安装USB驱动,但是很多开发者对USB驱动的安装方法不是十分了解,所以经常出现问题,导致安装失败.特书此文,手把手教你装USB驱动. 第一步 从官网下载最新的驱动程序 ...
- Mybati-Plus的用法 记录
参考文件下载地址: https://files.cnblogs.com/files/bulter/MyBatis-Plus.zip --------------------------------- ...
- Lin语法(Linq对数据库操作)
一.Linq语句的应用: var queryAllCustomers = from cust in customers group cust by cust.City into custGroup ...
- gitlab 设置分支保护功能及取消分支保护
使用gitlab管理员账户登录gitlab系统 进入需要分支保护的项目 进行分支保护设置 保护开发分支策略配置 保护RC送测库分支策略配置 调整分支保护策略 效果展示 取消分支保护 效果展示
- layui table 使用table放输入框时控制每列的宽度
<table class="layui-table" lay-filter="demo"> <colgroup> <%--设置每列 ...
- CentOS7 安装搭建docker环境
一.Docker简介 Docker 版本 :版本分为:社区版CE 企业版EE 社区版分为stable和edge俩种发行方式: stable版本:是季度版发行(三月一更新) edge版本:是月度版发行 ...
- 别错过了,130+个微信小程序源码 “限时分享“
里面有130+款微信小程序源码和效果图,我只放了其中几款小程序的截图,具体请看下方图片 仿网易云音乐小程序源码 链接:https://pan.baidu.com/s/ ...