比赛地址: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) 题解的更多相关文章

  1. Codeforces Round #182 (Div. 1)题解【ABCD】

    Codeforces Round #182 (Div. 1)题解 A题:Yaroslav and Sequence1 题意: 给你\(2*n+1\)个元素,你每次可以进行无数种操作,每次操作必须选择其 ...

  2. Codeforces Round #608 (Div. 2) 题解

    目录 Codeforces Round #608 (Div. 2) 题解 前言 A. Suits 题意 做法 程序 B. Blocks 题意 做法 程序 C. Shawarma Tent 题意 做法 ...

  3. Codeforces Round #525 (Div. 2)题解

    Codeforces Round #525 (Div. 2)题解 题解 CF1088A [Ehab and another construction problem] 依据题意枚举即可 # inclu ...

  4. Codeforces Round #528 (Div. 2)题解

    Codeforces Round #528 (Div. 2)题解 A. Right-Left Cipher 很明显这道题按题意逆序解码即可 Code: # include <bits/stdc+ ...

  5. Codeforces Round #466 (Div. 2) 题解940A 940B 940C 940D 940E 940F

    Codeforces Round #466 (Div. 2) 题解 A.Points on the line 题目大意: 给你一个数列,定义数列的权值为最大值减去最小值,问最少删除几个数,使得数列的权 ...

  6. Codeforces Round #677 (Div. 3) 题解

    Codeforces Round #677 (Div. 3) 题解 A. Boring Apartments 题目 题解 简单签到题,直接数,小于这个数的\(+10\). 代码 #include &l ...

  7. Codeforces Round #665 (Div. 2) 题解

    Codeforces Round #665 (Div. 2) 题解 写得有点晚了,估计都官方题解看完切掉了,没人看我的了qaq. 目录 Codeforces Round #665 (Div. 2) 题 ...

  8. Codeforces Round #160 (Div. 1) 题解【ABCD】

    Codeforces Round #160 (Div. 1) A - Maxim and Discounts 题意 给你n个折扣,m个物品,每个折扣都可以使用无限次,每次你使用第i个折扣的时候,你必须 ...

  9. 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 题解 直接 ...

随机推荐

  1. WordPress安装篇(5):源码编译安装LNMP并部署WordPress

    与YUM方式安装相比,源码编译安装方式更灵活,安装过程中能自定义功能和参数,特别是在批量部署服务器又要求软件版本及配置一致时,源码编译安装的优势很明显.本文介绍如何通过源码编译方式安装Nginx1.1 ...

  2. 微信小程序踩坑之获取手机号

    最近在开发小程序遇到这样一个问题, 在用户点击授权后去解密手机号时会出现第一次失败,第二次成功的情况.研究了一段时间,终于找到比较合理的解决方案,在此记录并总结一下,希望可以帮助到大家. 需求描述 在 ...

  3. 摆脱鼠标之Dos学习

    2015/12/24 for循环 1,创建文件 http://blog.csdn.net/wangxingbao4227/article/details/17009447 关于for循环的总结,很详细 ...

  4. Java设计模式(5:设计模式的分类及工厂模式详解)

    一.设计模式的分类 总的来说,设计模式可以分为三大类:创建型模式.结构型模式.行为型模式,具体如下图: 二.工厂模式 工厂模式分为简单工厂模式.工厂方法模式和抽象工厂模式.其中简单工厂模式并不属于23 ...

  5. 【Azure 机器人】微软Azure Bot 编辑器系列(2) : 机器人/用户提问回答模式,机器人从API获取响应并组织答案 (The Bot Framework Composer tutorials)

    欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...

  6. DG duplicate报错:RMAN-05001:auxiliary file name /u01/app/oracle/oradata/fratbs01.dbf conflicts with a file used by the target database

    问题:rman duplicate时报错: RMAN-05001:auxiliary file name /u01/app/oracle/oradata/fratbs01.dbf conflicts ...

  7. 看完互联网大佬的「LeetCode 刷题手册」, 手撕了 400 道 Leetcode 算法题

    大家好,我是 程序员小熊 ,来自 大厂 的程序猿.相信绝大部分程序猿都有一个进大厂的梦想,但相较于以前,目前大厂的面试,只要是研发相关岗位,算法题基本少不了,所以现在很多人都会去刷 Leetcode ...

  8. jquery 选择器 模糊匹配

    根据name值匹配 1.查询前缀为aa的数据 $("div[name^='aa']"); 2.查询后缀为aa的所有div的jquery对象 $("div[name$='a ...

  9. solidity 小案例 收费站

    solidity IDE下载地址 https://pan.baidu.com/s/1cY8VgDqB9Wt9VzK-Nocbyw 代码案例: pragma solidity ^0.4.0; //创建合 ...

  10. Hadoop:Hadoop的学习路线

    Hadoop生态架构技术   1.语言基础 Java:掌握javase知识,多理解和实践在Java虚拟机的内存管理.以及多线程.线程池.设计模式.并行化就可以,不需要深入掌握. Linux:系统安装( ...