【CF补题】Codeforces Round #784 (Div. 4)C++代码

2023-11-03

A.

#include<bits/stdc++.h>
using namespace std;
int a, b;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	int k;
	cin >> k;
	while (k--)
	{
		int t;
		cin >> t;
		if (t <= 1399) cout << "Division 4\n";
		else if (t <= 1599) cout << "Division 3\n";
		else if (t <= 1899) cout << "Division 2\n";
		else  cout << "Division 1\n";
	}
	return 0;
}

B.

#include<bits/stdc++.h>
using namespace std;
int a[200001];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	int t;
	cin >> t;
	while (t--)
	{
		int n;
		int x;
		bool flg = 0;
		memset(a, 0, sizeof(a));
		cin >> n;
		for (int i = 1; i <= n; i++)
		{
			cin >> x;
			a[x]++;
		}
		for (int i = 1; i <= n; i++)
		{
			if (a[i] >= 3)
			{
				cout << i << '\n';
				flg = 1;
				break;
			}
		}
		if (flg == 0)cout << "-1\n";
	}
	return 0;
}

C.

#include<bits/stdc++.h>
using namespace std;
int a[2], b[2];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	int t;
	cin >> t;
	while (t--)
	{
		int n;
		int x;
		bool flg = 0;
		memset(a, 0, sizeof(a));
		memset(b, 0, sizeof(b));
		cin >> n;
		for (int i = 1; i <= n; i++)
		{
			cin >> x;
			if (i % 2 == 0)a[x % 2]++;
			else b[x % 2]++;
		}
		if (a[0] == 0 || a[1] == 0)
		{
			if (b[0] == 0 || b[1] == 0)
			{
				cout << "YES\n";
				flg = 1;
			}
		}
		if (flg == 0)cout << "NO\n";
	}
	return 0;
}

D.

#include<bits/stdc++.h>
using namespace std;
int a[2], b[2];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	int t;
	cin >> t;
	while (t--)
	{
		int n;
		char c;
		int cnt1 = 0;
		int cnt2 = 0;
		bool flg = 0;
		memset(a, 0, sizeof(a));
		memset(b, 0, sizeof(b));
		cin >> n;
		for (int i = 1; i <= n; i++)
		{
			cin >> c;
			if (c == 'B')cnt1++;
			if (c == 'R')cnt2++;
			if (c == 'W')
			{
				if (cnt1 == 0 && cnt2 != 0 || cnt2 == 0 && cnt1 != 0)
				{
					flg = 1;
				}
				cnt1 = 0;
				cnt2 = 0;
			}
		}
		if (cnt1 == 0 && cnt2 != 0 || cnt2 == 0 && cnt1 != 0)
		{
			flg = 1;
		}
		if (flg == 1)cout << "NO\n";
		else cout << "YES\n";
	}
	return 0;
}

以上是比赛的时候做出来的呜呜呜,卡在E题了。

E。

(组合数学,容斥)有多少字符串对满足有一个位置的字符相同

通过一个矩阵数组来记录该字符串情况,然后枚举第一个字符的情况和第二个字符的情况

ps大佬的写法:ans=一对字符串中第一个字母相同的对数+一对字符串中第二个字母相同的对数-两个字符串中两个字母都相同的个数。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll sum[200010];
int n, m;
int a[200][200];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	int t;
	cin >> t;
	while (t--)
	{
		cin >> n;
		memset(a, 0, sizeof(a));
		char c1, c2;
		for (int i = 1; i <= n; i++)
		{
			cin >> c1 >> c2;
			a[c1 - 'a'][c2 - 'a']++;
		}
		ll ans=0;
		for (int i = 0; i <= 26; i++) 
		{
			ll now = 0;
			ll dq = 0;
			for (int j = 0; j <= 26; j++) 
			{
				dq += (now * a[i][j]);
				now += a[i][j];
			}
			ans += dq;
		}
		for (int j = 0; j <= 26; j++)
		{
			ll now = 0;
			ll dq = 0;
			for (int i = 0; i <= 26; i++)
			{
				dq += (now * a[i][j]);
				now += a[i][j];
			}
			ans += dq;
		}
		cout << ans << '\n';
	}
}

F.

关于为什么暴力能做,而我打cf的时候二分过不了这件事(我居然到比赛结束才意识到这题用二分有个鬼用啊喂!!)

用前缀和和后缀和处理后,查询那个相同的位置即可,判断是不是该位置A和B的吃的糖果数目要<=n 。

不要直接双重循环会tle

#include<bits/stdc++.h>
using namespace std;
long long now;
long long ans;
int sum[200010], sum2[200010], a[200010];
int n;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	int t;
	cin >> t;
	int x;
	while (t--)
	{
		cin >> n;
		ans = 0;
		sum[0] = 0;
		for (int i = 1; i <= n; i++)
		{
			cin >> a[i];
			sum[i] = sum[i - 1] + a[i];
		}
		sum2[n + 1] = 0;
		for (int i = n; i >= 1; i--) {
			sum2[i] = sum2[i + 1] + a[i];
		}
		sort(sum2 + 1, sum2 + n + 1);//倒序,好直接i-i
		for (int i = 1; i <= n; i++)
		{
			int j = lower_bound(sum2 + 1, sum2 + n + 1, sum[i]) - sum2;
			if (sum[i] == sum2[j] && i + j <= n)
			{
				ans = i + j;
			}
		}
		cout << ans << '\n';
	}
	return 0;
}

G.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【CF补题】Codeforces Round #784 (Div. 4)C++代码 的相关文章

随机推荐

  • 消息中心架构设计

    转载于 https www cnblogs com lilunjia p 8797399 html
  • sql 除以_1.七日留存率-SQL实现

    一 背景 留存率 是用户分析的核心指标之一 它也是经典的AARRR模型 海盗模型 中就有一个重要节点 留存 Acquisition 留存率的计算也是用户分析模型的计算基础 那么如何在数据库中用SQL实现呢 二 什么是留存率 常见的留存率有次
  • GitLab新建删除项目

    新建项目 在主页选择 Create a project 输入Project name 在Project URL选择组或者用户 Visibility Level选择Private 点击 Create project 提示创建成功 点击Clon
  • Vue2项目引入高德地图并展示

    前言 最近项目中需要使用地图来进行展示数据 并且还要进行一些交互的行为 因为之前并没有接触过地图类型的项目 看着原型图感觉还是很不错的 开始开发后也在研究如何在项目中正确引用高德地图 为此也是翻阅了高德官方的文档 发现实现起来还是比较容易的
  • java 蓝桥杯 两道经典国赛 填空题

    目录 求值 题目描述 链接 精选项目课程 IT热门课程 蓝桥云课课程 蓝桥云课 解题思路 源码附上 纯质数 题目描述 解题思路 源码附上 求值 题目描述 链接 精选项目课程 IT热门课程 蓝桥云课课程 蓝桥云课 解题思路 这道题是填空题 所
  • (亲测解决)PyCharm 从目录下导包提示 unresolved reference(完整图解)

    最近在进行一个Flask项目的过程中遇到了unresolved reference 包名 的问题 在网上找了好久解决方案 并没有一个能让我一步到位解决问题的 后来 我对该问题和网上的解决方案进行了分析 发现网上大多数都是针对项目同一目录下的
  • Idea之Java代码Remote JVM Debug

    Idea之Java代码Remote JVM Debug 1 适用场景 在公司中 java代码开发完成之后 一般都会部署到linux服务器上 以供公司客户进行使用 但是作为开发人员 尤其是一名新员工 了解公司产品源代码中的业务逻辑算的上是最重
  • Vue项目element-ui弹窗组件el-dialog、el-drawer,阻止点击遮罩层关闭

    项目需求问题 Vue项目element ui弹窗组件el dialog el drawer 阻止点击遮罩层关闭 Vue项目element ui弹窗组件el dialog el drawer 阻止点击遮罩层关闭 在使用element ui组件
  • 在 VMware Workstation 16 Pro 中安装 Ubuntu Server 22.04.1 并配置静态 IP 地址

    文章目录 1 下载 Ubuntu Server 22 04 1 2 新建虚拟机向导 3 编辑虚拟机设置 4 开启此虚拟机并配置Ubuntu系统 5 设置 root 用户的密码 6 允许远程连接 root 用户 7 配置静态 IP 地址 7
  • CVE-2021-41773 漏洞复现

    漏洞原理 Apache HTTP Server 2 4 49版本使用的ap normalize path函数在对路径参数进行规范化时会先进行url解码 然后判断是否存在 的路径穿越符 当检测到路径中存在 字符时 如果紧跟的2个字符是十六进制
  • PyCharm 集成PyQt5

    PyCharm 安装PyQt5 在Pycharm中安装软件时比较方便的 直接进行File gt Settings 接着进入Project gt Project Interpreter 然后点击右上角的加号 在检索文本框中输入PyQt5 和
  • 【5G消息产业图谱】正式发布!

    5G消息 在所有5G应用中脱颖而出 艳惊四座 那么 作为最快落地的5G应用 5G消息目前的进展如何 到底有多少玩家参与 实际又有多少行业用户在 试水 今天 5G产业圈特别制作的 5G消息产业图谱 正式发布 大家从我们的图谱中可以看到5G消息
  • 网络原理之初识

    目录 网络发展背景 独立模式 网络互联 局域网 广域网 网络通信基础 IP地址 端口号 协议 协议分层 OSI七层网络模型 TCP IP五层 四层 网络模型 物理层 数据链路层 网络层 传输层 应用层 封装和分用 网络发展背景 独立模式 独
  • Tensorflow 摄像头物体实时识别

    官方源码提供了图片的检测 但是实用性不高 所以对源码进行了修改 使用笔记本自带摄像头或者usb摄像头进行实时检测 第二张是摄像头实时物体识别 参考源 视频 https www youtube com watch v COlbP62 B U
  • 第41步 深度学习图像识别:Efficientnet建模(Tensorflow)

    一 写在前面 1 Efficientnet EfficientNet是Google在2019年提出的一种新的卷积神经网络架构 主要目标是提高模型的效率 即在保持或提高模型性能的同时 尽可能地降低模型的复杂性和计算需求 EfficientNe
  • 如何快速提高个人的计算机水平,如何进一步提高计算机水平

    文章 如何进一步提高计算机水平 周老师 您好 我是一名中学信息技术教师 我现在想进一步提高自己计算机专业方面的知识和能力 不知如何去做 我不是计算机专业毕业的 从事信息技术课程教学已两年 我对简单的Office 2000应用及计算机基本操作
  • 通过添加Access-Control-Allow-Origin首部字段,解决flask跨域问题

    今天在使用swagger测试接口的时候出现无法获取返回的问题 TypeError Origin http 10 8 15 49 18081 is not allowed by Access Control Allow Origin 查看日志
  • 树莓派接多个USB摄像头,使用opencv打开指定的某一个摄像头

    问题描述 在树莓派上使用多个USB摄像头时 如何确定各个摄像头所对应的id 比如 当有两个摄像头时 我尝试一个为cv2 VideoCapture 0 一个为cv2 VideoCapture 1 通过看捕获的图像 可以确定各摄像头的id 但这
  • attachInterrupt()函数

    attachInterrupt 函数介绍 attachInterrupt 函数是用于为Arduino开发板设置和执行ISR 中断服务程序 用的 ISR 中断服务程序 顾名思义就是中断Arduino当前正在处理的事情而优先去执行中断服务程序
  • 【CF补题】Codeforces Round #784 (Div. 4)C++代码

    A include