A题

1.新添加一间酒店,要求酒店离已有的最近的一间酒店的距离恰好等于d

2.最左和最右必定存在合适的两种情况

3.酒店之间的情况就要判断两间酒店间的距离:

小于2d,表示无法在这两间酒店中间找到合适情况
等于2d,表示这两间酒店的正中间可以满足条件,新建酒店
大于2d,表示这两间酒店之间存在两种满足条件的情况

 #include<bits/stdc++.h>

 /*

 -6 0 5 6 12 13 19

 2 6 10 13 16 21
*/
using namespace std;
#define int long long
#define N 209
map<int,int> mp;
int arr[N];
signed main(){
int n,d;
cin>>n>>d;
for(int i=;i<=n;i++)
{
cin>>arr[i];
mp[arr[i]]=;
}
if(n==){
cout<<;
return ;
}
sort(arr+,arr++n);
int sum=;
for(int i=;i<=n;i++){
if(i==){
if(!mp[arr[i]+d]&&(arr[i+]-(arr[i]+d))>=d){
mp[arr[i]+d]=;
// cout<<arr[i]+d<<endl;
sum++;
}
continue;
}
if(i==n){
if(!mp[arr[i]-d]&&(arr[i]-d-arr[i-])>=d){
mp[arr[i]-d]=;
// cout<<arr[i]-d<<endl;
sum++;
}
continue;
}
if(!mp[arr[i]-d]&&(arr[i]-d-arr[i-])>=d){
mp[arr[i]-d]=;
// cout<<arr[i]-d<<endl;
sum++;
}
if(!mp[arr[i]+d]&&(arr[i+]-(arr[i]+d))>=d){
mp[arr[i]+d]=;
// cout<<arr[i]+d<<endl;
sum++;
}
}
printf("%d\n",sum+);
return ;
} /*
3 2
4 4
5 6
6 9
*/ */

B题

题意:有一排n个格子,每个格子里能放一种花,一共有两种花,一种用 0 代表,另一种用 1 代表,然后给你m各区间,每个区间的价值就是这个区间内的两种花的数量之积。问你应该怎么放花,使得这些区间的价值和最大。

思路:就是说让0 1 的个数在各个区间内都是接近的(和相等,越接近,积越大),也就是说0 1 分布均匀,那么,我们直接0 1 交替输出,就可以保证0 1 在各个区间都是最接近的。

AC代码:

#include<bits/stdc++.h>

using namespace std;
#define N 200505
struct str{
int l,r;
int cha;
}st[N];
int main(){
int n,m;
cin>>n>>m;
for(int i=;i<=m;i++){
cin>>st[i].l>>st[i].r; }
for(int i=;i<=n;i++){
if(i%)
cout<<;
else
cout<<;
} return ;
}
/*
2 1
3 2
4 4
5 6
6 9
101010
2+4+2 101010
1+4+2
*/ /**/

C题:

题意:给出一个长为n的数列(数字可以重复),表示在i号位置的数字为ai。.现在,在数列的最左和最右端有一个报数机器人,最左端的机器人向右移动,最右端的机器人向左移动,每移动到一个位置时,机器人就会将这个位置的数字报出来。现在,每个机器人都有一个编号,如果机器人报出来的数字和这个编号相同的话,机器人就会停止移动。
问,这两个机器人的编号有多少种情况,可以使这两个机器人不发生碰撞。
思路:跑后缀就行。用MAP标记超时了QAQ
AC代码:
 #include<map>
#include<stdio.h>
#include<iostream>
#include<algorithm> using namespace std; #define int long long
#define N 250000
int arr[N];
int sum[N];
int mp[N];
int mmp[N];
signed main(){
int n;
cin>>n;
for(int i=;i<=n;i++)
scanf("%lld",&arr[i]);
int add=; for(int i=n;i>=;i--){
sum[i]=add;
if(!mmp[arr[i]])
add++;
mmp[arr[i]]=;
}
int ans=;
for(int i=;i<=n;i++){
if(mp[arr[i]])
continue;
ans+=sum[i];
mp[arr[i]]=;
}
cout<<ans;
return ;
}

Codeforces Round #495 (Div. 2) A,B,C的更多相关文章

  1. Codeforces Round #495 (Div. 2) D. Sonya and Matrix

    http://codeforces.com/contest/1004/problem/D 题意: 在n×m的方格中,选定一个点(x,y)作为中心点,该点的值为0,其余点的值为点到中心点的曼哈顿距离. ...

  2. Codeforces Round #495 (Div. 2) C. Sonya and Robots

    http://codeforces.com/contest/1004/problem/C 题意: 在一行上有n个数字,现在在最左边和最右边各放置一个机器人,左右机器人各有一个数字p和q.现在这两个机器 ...

  3. Codeforces Round #495 (Div. 2) B

    题目链接:http://codeforces.com/contest/1004/problem/B B. Sonya and Exhibition time limit per test 1 seco ...

  4. Codeforces Round #495 (Div. 2) Sonya and Matrix

    正常没有正方形的限制下,值为i的点个数4i 那么从0开始遍历,第一个不为4i的值就是min(x, y) 由于对称性我们姑且令x为这个值 我们先列举n*m=t的各种情况 对于一对n, m.我们已经知道n ...

  5. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  6. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  7. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  8. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  9. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

随机推荐

  1. Thinking In Java 4th Chap6 访问权限控制

    引入一个包及其所包含的方法:import java.util.ArrayList;(引入java.util包,并引入了包中的ArrayList类) import java.util.*;(引入了jav ...

  2. Python——类和对象(二)

    一.实例方法和自动绑定self 在类中定义的实例方法,Python会自动绑定方法的第一个参数(通常是self,下文也默认为self),第一个参数总会指向调用该方法的对象,因为实例方法(包括构造方法)第 ...

  3. 项目遇到的问题:页面c:forEach循环的数据进行计算传回后台并保持到数据库

    应该还有更简单的方法 但是我不晓得 手动给文本框输入数据保存到数据库 A表 :通过订单编号 查询数据获得 B表 :通过A表中的字段查询遍历获得 问题: 手动输入文本框内容 保存到数据库 页面form提 ...

  4. 无服务架构在IOT的应用场景——使用函数工作流处理DIS数据

    在物联网领域,复杂性往往并非在于传感器,真正的复杂性在于各种传感器产生的大量数据,以及对这些数据的处理,所以开发者不得不花费大量的时间去构建和维护后端服务器来处理这样一个庞大的数据流.而在今天这个敏捷 ...

  5. Linux下/etc/login.defs文件

    /etc/login.defs文件定义了与/etc/password和/etc/shadow配套的用户限制设定.这个文件是需要的,缺失并不会影响系统的使用,但是也许会产生意想不到的错误. 如果/etc ...

  6. BZOJ4199 NOI2015品酒大会(后缀树)

    利用SAM建出后缀树,树上每个节点计算一下|right|.right集合中ai的最大.次大.最小.次小值即可. #include<iostream> #include<cstdio& ...

  7. Merkle树

    在分布式系统.P2P应用中或者是区块链中,会经常使用一种数据结构Merkle tree(默克尔树),这里我们将详细讨论一下这个常用数据结构. Merkle tree Merkle树看起来非常像二叉树, ...

  8. archive_lag_target参数

    需求,由于一套生产环境归档日志切换频率过低,建议修改参数,使其间隔一定时间周期自动切换生成归档日志; SQL>; THREAD# SEQUENCE# TO_CHAR(COMPLETION_TIM ...

  9. IntelliJ IDEA 之 配置JDK 的 4种方式

    一.新建项目前配置JDK 打开IDEA集成开发环境工具,点击:File--Project Structure,如下图 在打开的页面中,选择SDKs属性,并点击中间的加号+,选择JDK,如下图 在打开的 ...

  10. MySQL增量备份与恢复实例

    小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,就不太可能每天进行一次完整备份了,这时候就可以使用增量备份.增量备份的原理就是使用了mysql的binlog日志. 本次操作 ...