Codeforces Round #776 (Div. 3)

2023-11-05

菜鸡在这里做做笔记,各位进来的大佬我先 orz 了

B

#include<bits/stdc++.h>
#define ll long long
using namespace std;
 
const int N = 2e5 + 10;
const int inf = 0x3f3f3f3f;
int n;
int main()
{
	long long l, r, a;
	cin >> n;
	while (n--)
	{
		cin >> l >> r >> a;
		if (a == 1)
		{
			cout << r << endl;
			continue;
		}
		ll p = (r / a) * a - 1LL;//p为mod a后等于a-1的数
		if (p < l)p = l;
		ll ans = max(p / a + p % a, r / a + r % a);
		cout << ans << endl;
	}
	return 0;
}

p = (r / a) * a - 1LL的原理 

 

        C

本题为贪心算法,权重最高的前2n个节点权重累加,建立嵌套段系统时只需讲第i个位置和n+1-i位置连接起来即可,输出时使用该输出方法使得节点下标小的节点在前。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
 
const int N = 2e5 + 10;
const int inf = 0x3f3f3f3f;
struct node
{
	ll loc, w;
	ll idx;
}a[N],b[N];
 
bool cmp1(node x1, node x2)
{
	return x1.w < x2.w;
}
 
bool cmp2(node x1, node x2)
{
	return x1.loc < x2.loc;
}
void solve()
{
	ll n, m, ans = 0;
	cin >> n >> m;
	for (ll i = 1; i <= m; i++)
	{
		cin >> a[i].loc >> a[i].w;
		a[i].idx = i;
	}
	sort(a + 1, a + 1 + m, cmp1);
	ll r = n * 2;
	for (ll i = 1; i <= r; i++)
	{
		ans += a[i].w;
		b[i] = a[i];
	}
	sort(b + 1, b + 1 + r, cmp2);
	cout << ans << endl;
	for (int i = 1; i <=n; i++)
		cout << min(b[i].idx, b[r - i + 1].idx) << " " << max(b[i].idx, b[r + 1 - i].idx) << endl;
	cout << endl;
}
int main()
{
	int _;
	cin >> _;
	while (_--)
	{
		solve();
	}
	return 0;
}

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

Codeforces Round #776 (Div. 3) 的相关文章

随机推荐

  • python滚动的后推任意时点

    有几个关键点 对时间的循环 可以使用pandas的date range函数 比较容易一些 后推任意时点 使用dateutil relativedelta的relativedelta 可以以准确地指定日期后推 示例代码 比如 循环2020 0
  • react+antd出现preventDefault()警告报错

    react项目遇到如下报错 This synthetic event is reused for performance reasons If you re seeing this you re accessing the method p
  • 【C++】类和对象-多态

    1 多态的基本语法 代码 include
  • 【微信小程序】小程序长按复制文本

    微信小程序的文本 要具有长按复制功能 必须满足两个条件 文本在
  • Python类、模块、包

    http www cppblog com len archive 2008 07 24 57078 html Python在处理功能复用和功能颗粒度划分时采用了类 模块 包的结构 这种处理跟C 中的类和名字空间类似 但更接近于Java所采用
  • linux开发板通过网线连接电脑(win10)连接网络问题

    最近开始学习嵌入式Linux开发 使用野火imx6ull开发板 想把开发板通过网线连接到笔记本 笔记本连接WiFi 共享使用网络 查询了很多资料后成功实现 我现在把这个方法分享出来 1 禁用防火墙功能 打开网络和共享中心 gt window
  • .net dapper简单使用

    以本地mysql数据库为例 准备工作 新建数据库 新建表 例如book表 然后定义Book类 book表和Book类应对应 这样dapper才能把他们映射好 在appsettings json中配置数据库连接 ConnectionStrin
  • pytorch autograd计算标量函数二阶导数

    计算标量函数 y x 3 s i n
  • 微信公众号实现简易的物联网控制(一)

    这篇主要说说如何通过微信公众号来查看室内传感器数据 至于硬件部分和物联网平台以后再详细说明 准备工作 1 申请微信公众号 2 搭建云服务器 首先说明一下整体流程 用户发送相应的指令到公众号后台 服务器根据指令的内容调用OneNET的API获
  • 深入理解JVM(四)JVM的垃圾回收机制

    文章目录 1 什么是垃圾回收机制 2 Java中的引用类型 3 如何判断对象是否可以被回收 4 方法区的垃圾收集 5 垃圾收集算法 5 1 标记 清除 Mark Sweep 算法 5 2 标记整理 Mark Compact 算法 5 3 复
  • 谭浩强C++课后习题16——矩阵对角线元素之和

    谭浩强C 课后习题16 矩阵对角线元素之和 题目描述 求一个n n矩阵对角线元素之和 算法思路 定义一个动态二维数组 定义方法 定义一个指向指针的指针 令其指向每一行的首地址 循环n次 定义n个一维数组 循环n次 对角线之和即为每一行num
  • Dynamics 365发送邮件

    在Dynamics 365 CRM 开发中 发送邮件除了CRM自带的邮件以外 还可以使用代码发送邮件 大大丰富了邮件的内容 满足客户不同的需求 Entity email new Entity email 邮件接收人 类型为 EntityCo
  • 梳理总结线程池知识(内含常用线程池选型技巧及其API分类讲解)

    核心 救急线程概念 核心线程 救急线程 二者区别 原始线程池的构造方法 常用线程池及其适用场景 FixedThreadPool CachedThreadPool SingleThreadExecutor ScheduledExecutor
  • Opecncv-python使用踩坑篇(一)

    import cv2时 RuntimeError module compiled against API version 0xb but this version of numpy is 0xaTraceback most recent c
  • 【Proteus仿真】DAC0832+51单片机汇编实现三角波输出

    Proteus仿真 DAC0832 51单片机汇编实现三角波输出 Proteus仿真 汇编代码 asm 利用DAC0832产生三角波 程序如下 本程序中产生的电压的最大幅度受DAC0832的基准电压限制 产生的的三角波周期受累加器A的控制
  • 噪声库NOISEX-92下载并用python转为wav

    0 直接一键获取 可以进我的CSDN下载 https download csdn net download weixin 44908427 85833708 也可以留言发邮箱 1 数据下载 官方下载链接 NOISEX 92 下载下来后是ma
  • Python本地安装的包(setup.py / pip install -e)复制后需要重新安装

    之前运行的AE代码 然后为了改charnet复制了一份 然后就发现在新复制的目录里面程序打断点也会跳过 而且在aetextspotter py里面增加一些输出也没变化 这是因为aetextspotter py所在的目录mmdet是通过pyt
  • IT项目管理作业八

    RUNNING CASE 第一题 90 的员工在系统推出后的两周内登录了该系统 90 的员工在系统推出后的四周内完成了有关该系统的培训 该系统帮助确定了25 的员工如何改善健康状况 25 的员工已将改善健康的目标纳入系统 并通过报名参加项目
  • C#和Java之间的语法和特性差异

    C 和Java是两种常见的面向对象编程语言 虽然它们在许多方面都非常相似 但仍然有一些不同之处 下面是它们之间的主要差异以及相应的功能列表 语法差异 C 使用分号作为语句结束符 而Java使用分号和花括号 C 使用 using 关键字导入命
  • Codeforces Round #776 (Div. 3)

    菜鸡在这里做做笔记 各位进来的大佬我先 orz 了 B include