A过水,不讲

题解 CF1077B 【Disturbed People】

  • 这题就是个显而易见的贪心可是我考场上差点没想出来
  • 显然把一户被打扰的人家的右边人家的灯关掉肯定比把左边的灯关掉
  • 从左到右扫一遍,每次如果遇到一户被打扰的人家就ans++,然后把它右边的灯关掉
  • 然后就做完了
# include <bits/stdc++.h>

int a[101];

int main()
{
int n;
int ans = 0;
scanf("%d", &n);
for(int i = 1; i <= n; i++)
scanf("%d", &a[i]);
for(int i = 2; i <= n - 1; i++)
{
if (a[i] == 0 && a[i - 1] == 1 && a[i + 1] == 1)
ans++, a[i + 1] = 0;//关右边的灯
}
printf("%d\n", ans);
return 0;
}

题解 CF1077C 【Good Array】

  • 个人觉得这题比B还水
  • 先排下序,扫一遍\(1-n\)
  • 对于每个数\(i\),如果\(i \neq n\),则当\(\sum_{j=1}^na[j]-a[i]=2*a[n]\)时满足条件
  • 不然要是\(i = n\)的话,当\((\sum_{j=1}^na[j])-a[n]=2*a[n-1]\)时满足条件
  • 判断一下就好了
# include <bits/stdc++.h>

# define ll long long

struct p
{
int id;
ll x;
}; p a[200001]; int cmp(p x, p y){return x.x < y.x;} std::vector<int> vec; int main()
{
int n;
ll sum = 0;
scanf("%d", &n);
for(int i = 1; i <= n; i++)
scanf("%d", &a[i].x), a[i].id = i, sum += a[i].x;
std::sort(a + 1, a + n + 1, cmp);
for(int i = 1; i <= n; i++)
{
if(i != n)//情况1
{
if(sum - a[n].x - a[i].x == a[n].x)
vec.push_back(a[i].id);
}
else //情况2
{
if (sum - a[n - 1].x - a[i].x == a[n - 1].x)
vec.push_back(a[i].id);
}
}
if(vec.size())
{
printf("%d\n", vec.size());
for(int i = 0; i < vec.size(); i++)
printf("%d ", vec[i]);
}
else
printf("0");
return 0;
}

题解 CF1077D 【Cutting Out】

  • 昨晚刚打的场,感触深刻啊

  • 昨天打的时候死命WA16结果才发现16是\(n=k\)的的点

  • \(rp--,rating-=inf\)

  • 好了说正事

  • 这道题我们可以枚举删除次数,发现满足单调性,果断二分

  • check扫一遍\(1-200000\),对于每个数i,每次将序列长度加上(i出现的次数/当前check的删除次数),如果序列长度\(\ge k\)就return true;否则return false;

  • 在二分时处理一下答案即可

  • 其实用不着queue,但已经STL依赖症了qwq

#include <bits/stdc++.h>

int n, k;
int a[200010], ans[200010];
int s[200010];
std::queue<int> st; int check(int x)
{
while(!st.empty())
st.pop();
for(int i = 1; i <= 200000; i++)
for(int j = s[i] / x; j; j--)//能加的全部加进去
st.push(i);
if(st.size() >= k)//满足条件
{
for(int i = 1; i <= k; i++)
ans[i] = st.front(), st.pop();
return true;
}
return false;
} int main()
{
scanf("%d%d", &n, &k);
for (int i = 1; i <= n; i++)
scanf("%d", &a[i]), s[a[i]]++;
int l = 0, r = 200001;
while (l < r)//二分
{
int mid = (l + r + 1) >> 1;
if (check(mid))
l = mid;
else
r = mid - 1;
}
for (int i = 1; i <= k; i++)
printf("%d ", ans[i]);
return 0;
}

Codeforces Round #521 (Div.3)题解的更多相关文章

  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 #521 (Div. 3) E. Thematic Contests(思维)

    Codeforces Round #521 (Div. 3)  E. Thematic Contests 题目传送门 题意: 现在有n个题目,每种题目有自己的类型要举办一次考试,考试的原则是每天只有一 ...

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

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

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

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

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

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

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

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

随机推荐

  1. asp.net core-15.Individual authentication 模板

    在visual studio code执行dotnet new mvc --help 可以查看执行命令 visual studio code先创建一个mvc的项目 dotnet new mvc -au ...

  2. Kubernetes 学习笔记(五):数据卷

    "数据卷"通常和"有状态"这个词同时出现,卷用于给有状态应用保存/共享状态. 常用的数据卷类型 1. emptyDir: 用于存储临时数据的空目录 emptyD ...

  3. Apache2.4+Tomcat7.0整合配置详解

    一.简单介绍 Apache.Tomcat Apache HTTP Server(简称 Apache),是 Apache 软件基金协会的一个开放源码的网页服务器,可以在 Windows.Unix.Lin ...

  4. Warning: popen() has been disabled for security reasons in OS/Guess.php on line 241

    今天使用pecl install swoole命令编译安装swoole的时候提示:Warning: popen() has been disabled for security reasons in ...

  5. Java数据结构HashMap

    java数据结构HashMap /** * <html> * <body> * <P> Copyright JasonInternational</p> ...

  6. 关于H5的一些相关基础知识

    HTML只是简写全写是(Hyper Text  Markup Language)表示的是:超文本标记语言; HTML5表示的是html的第5次重大修改的第5个版本,(而html5是W3C和WHATWG ...

  7. react中key值的理解

    react利用key来识别组件,它是一种身份标识标识,相同的key react认为是同一个组件,这样后续相同的key对应组件都不会被创建有了key属性后,就可以与组件建立了一种对应关系,react根据 ...

  8. 01 Windows编程——Hello World

    源码 #include "stdafx.h" #include<Windows.h> int WINAPI WinMain(HINSTANCE hInst,HINSTA ...

  9. 【问题】XShell连接不上Debian root用户

    类似文章:https://www.lianst.com/3231.html 修改此文件 重启ssh服务 ssh restart有问题,换一条命令OK 你的Linux发行版可能不一样,针对CentOS参 ...

  10. FreeRTOS列表和列表项

    FreeRTOS中的列表和列表项类似于数据结构中的链表和节点: 相关的文件是list.c和list.h两个文件: List_t列表结构体 具体定义如下: /* * Definition of the ...