Codeforces Round 979 (Div. 2)

A. A Gift From Orangutan

题意:

思路: 贪心 + 模拟

 重新排列的数组 -> 最大的元素放第一个位置 ,最小的元素放第二个位置

#include<bits/stdc++.h>
using namespace std;
#define lowbit(x) ( x & -x )

#define int long long
typedef long long ll;
typedef pair<int, int> pii;

void solve()
{
	int n; cin >> n;
    vector<int> a(n + 1);
    for( int i = 1 ; i <= n ; i++) cin >> a[i];
    sort( a.begin() + 1 , a.end() );
    swap( a[1] , a[n] );
    swap( a[2] , a[n] );
    vector<int> b(n + 1) , c(n + 1); b[0] = 2e18;
    int sum = 0;
    for( int i = 1 ; i <= n ;i++)
    {
        c[i] = max( c[i-1] , a[i] );
        b[i] = min( b[i-1] , a[i] );
        sum += c[i] - b[i];
    }
    cout << sum << endl;
}
signed main()
{
	int tt = 1;
	cin >> tt;
	while (tt--)solve();
	return 0;
}

B. Minimise Oneness

题意:

思路:构造题

一般构造题都是按照某种规律来做的 -> 关键是找规律

我的方法是先看样列,如果不能看出规律,就在手搓样例(都试几组),继续看,如果还不能,就只能猜了

我是通过手搓 n = 4发现规律的

#include<bits/stdc++.h>
using namespace std;
#define lowbit(x) ( x & -x )

#define int long long
typedef long long ll;
typedef pair<int, int> pii;
void insert(vector<vector<int>>& f, int x1, int y1, int x2, int y2, int c) // 二维差分模版
{
    f[x1][y1] += c;
    f[x2 + 1][y1] -= c;
    f[x1][y2 + 1] -= c;
    f[x2 + 1][y2 + 1] += c;
}
int count_binary( int x , int k ) // 返回的是 0 ~ x 中二进制第 j 位为 1 的个数
{
    int y = 1ll << ( k + 1 );
    x++;
    int ans = x / y * ( y / 2 );
    x %= y; x -= y / 2;
    if( x > 0 ) ans += x;
    return ans;
}
int qmi(int a, int b, int mod) // 快速幂模版
{
	int res = 1;
	while (b)
	{
		if (b & 1) res = res * a % mod;
		a = a * a % mod;
		b >>= 1;
	}
	return res;
}
bool is_prime(int n) // 判断素数模版
{
	if (n < 2)return false;
	for (int i = 2; i <= n / i; i++)
	{
		if (n % i == 0)return false;
	}
	return true;
}
int gcd( int a , int b )
{
    return b ? gcd( b , a % b ) : a;
}
int lcm( int a , int b )
{
    return a * b / gcd( a , b );
}
void solve()
{
	int n; cin >> n;
    string s; 
    for( int i = 1 ; i <= n ; i++ ) 
    {
        if( i == 1 ) s += '1';
        else s += '0';
    }
    cout << s << endl;
}
signed main()
{
	int tt = 1;
	cin >> tt;
	while (tt--)solve();
	return 0;
}

C. A TRUE Battle

题意:

 思路:结论题

如果首尾 有 '1'  -> true

如果 有两个连续的 '1' -> true

否则 -> false

#include<bits/stdc++.h>
using namespace std;
#define lowbit(x) ( x & -x )

#define int long long
typedef long long ll;
typedef pair<int, int> pii;
void insert(vector<vector<int>>& f, int x1, int y1, int x2, int y2, int c) // 二维差分模版
{
    f[x1][y1] += c;
    f[x2 + 1][y1] -= c;
    f[x1][y2 + 1] -= c;
    f[x2 + 1][y2 + 1] += c;
}
int count_binary( int x , int k ) // 返回的是 0 ~ x 中二进制第 j 位为 1 的个数
{
    int y = 1ll << ( k + 1 );
    x++;
    int ans = x / y * ( y / 2 );
    x %= y; x -= y / 2;
    if( x > 0 ) ans += x;
    return ans;
}
int qmi(int a, int b, int mod) // 快速幂模版
{
	int res = 1;
	while (b)
	{
		if (b & 1) res = res * a % mod;
		a = a * a % mod;
		b >>= 1;
	}
	return res;
}
bool is_prime(int n) // 判断素数模版
{
	if (n < 2)return false;
	for (int i = 2; i <= n / i; i++)
	{
		if (n % i == 0)return false;
	}
	return true;
}
int gcd( int a , int b )
{
    return b ? gcd( b , a % b ) : a;
}
int lcm( int a , int b )
{
    return a * b / gcd( a , b );
}
void solve()
{
	int n; cin >> n;
    string s; cin >> s;
    if( s[0] == '1' || s[n-1] == '1' )
    {
        puts("YES");  return;
    }
    for( int i = 1 ; i < n ; i++ )
    {
        if( s[i] == '1' && s[i-1] == '1' )
        {
            puts("YES");  return;
        }
    }
    puts("NO");
}
signed main()
{
	int tt = 1;
	cin >> tt;
	while (tt--)solve();
	return 0;
}

 D. QED's Favorite Permutation

题意:

思路:(类似于并查集)

首先观察字符串 ,如果相邻的两个字符分别是 'L' 和 'R',则一定不能交换 (就属于两个集合) 

通过改变,可以使他们变为一个集合,于是可以交换

#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve()
{
    int n , q;
    cin >> n >> q;
    vector<int> a( n + 1 ) , am( n + 1 );
    for( int i = 1 ; i <= n ; i++ ) cin >> a[i];
    for( int i = 1 ; i <= n ; i++ ) am[i] = max( am[i-1] , a[i] );
    // am数组在这里类似于 并查集中的parent 
    string s; cin >> s;
    s = " " + s + " ";
    int cnt = 0;
    for( int i = 2 ; i <= n ; i++ )
    {
        if( s[i-1] == 'L' && s[i] == 'R' )
        {
            if( am[i - 1] != i - 1 )cnt++; // 属于两个集合,cnt++;
        }
    }
    while(q--)
    {
        int x; cin >> x;
        if( s[x] == 'L' )
        {
            if( s[x + 1] == 'R' && am[x] != x ) cnt--; // 合并两个集合
            if( s[x - 1] == 'L' && am[x - 1] != x - 1 ) cnt++; // 拆成两个集合
            s[x] = 'R';
        }
        else
        {
            if( s[x - 1] == 'L' && am[x - 1] != x - 1 )cnt--;
            if( s[x + 1] == 'R' && am[x] != x )cnt++;
            s[x] = 'L';
        }
        if(cnt)puts("NO");
        else puts("YES");
    }
}
signed main()
{
    int tt; cin >> tt;
    while(tt--)solve();
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/898773.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人类末日?Hinton预言AI恐将夺取地球控制权!

图片来源&#xff1a;Youtube Z Highlights&#xff1a; AI会变得比人类更聪明。我们必须担心它们会想从我们手中夺取控制权&#xff0c;这是我们应该认真思考的问题。 使用AI制造自动化致命武器的风险并不取决于AI是否比我们聪明。这与AI本身可能失控并试图接管的风险是完全…

[论文笔记]HERMES 3 TECHNICAL REPORT

引言 今天带来论文HERMES 3 TECHNICAL REPORT&#xff0c;这篇论文提出了一个强大的工具调用模型&#xff0c;包含了训练方案介绍。同时提出了一个函数调用标准。 为了简单&#xff0c;下文中以翻译的口吻记录&#xff0c;比如替换"作者"为"我们"。 聊天模…

嵌套div导致子区域margin失效问题解决

嵌套div导致子区域margin失效问题解决 现象原因解决方法 现象 <div class"prev"></div> <div class"parent"><div class"child"></div><div class"child"></div> </div> <div cl…

HCIP到底需要考哪几门?821和831都要考吗?

相对于华为认证中的HCIE&#xff0c;HCIP难度较低比较容易获得。 对于许多准备考HCIP认证的朋友来说&#xff0c;了解考试要求和内容是成功的关键第一步。 经常问的问题上次刚梳理了一波价格&#xff0c;还没看的看这里→《HCIP考证多少钱&#xff1f;HCIP认证深度解析》 今天再…

效果不错的论文介绍:Im2Flow2Act:-跨领域机器人操控技术

Im2Flow2Act: 跨领域机器人操控技术 简介 今天介绍一个比较惊艳的论文&#xff0c;Im2Flow2Act&#xff0c;可以预测应该怎么移动图象中的物体预测移动方法完成需要执行的动作任务。 Im2Flow2Act 是一个基于学习的机器人操控框架&#xff0c;旨在通过多种数据源为机器人提供操…

《深度学习》OpenCV EigenFaces算法 人脸识别

目录 一、EigenFaces算法 1、什么是EigenFaces算法 2、原理 3、实现步骤 1&#xff09;数据预处理 2&#xff09;特征提取 3&#xff09;构建模型 4&#xff09;识别 4、优缺点 1&#xff09;优点 2&#xff09;缺点 二、案例实现 1、完整代码 运行结果&#xff…

Star Tower:智能合约的安全基石与未来引领者

在区块链技术的快速发展中&#xff0c;智能合约作为新兴的应用形式&#xff0c;正逐渐成为区块链领域的重要组成部分。然而&#xff0c;智能合约的可靠性问题一直是用户最为关心的焦点之一。为此&#xff0c;Star Tower以其强大的技术实力和全面的安全保障措施&#xff0c;为智…

算法之随机数

概述 用Java的Math.random()方法生成随机数。此方法为真随机。 代码 public static void main(String[] args) {int size 100;int cycle 1000000;int count 0;int target 1;for(int i 0; i < cycle; i){int r (int) (Math.random() * size);if(r target){count;}}S…

微信小程序文本收起展开

这里写自定义目录标题 微信小程序文本收起展开常见问题的梯形背景框 微信小程序文本收起展开 参考 https://juejin.cn/post/6963904955262435336 <!-- 常见问题解答 --><view classcontentBottom><view classBottomFirst><text id0 data-id0 class&quo…

SSM框架实战小项目:打造高效用户管理系统 day3

前言 在前两篇博客中&#xff0c;后台已经搭建完毕&#xff0c;现在需要设计一下前端页面 webapp下的项目结构图 创建ftl文件夹&#xff0c;导入css和js 因为我们在后台的视图解析器中&#xff0c;设置了页面解析器&#xff0c;跳转路径为/ftl/*.ftl&#xff0c;所以需要ftl文件…

SpringBoot日常:封装redission starter组件

文章目录 逻辑实现POM.xmlRedissionConfigRedissionPropertiesRedissionUtilsspring.factories 功能测试application.yml配置POM.xmlTestController运行测试 本章内容主要介绍如何通过封装相关的redission连接配置和工具类&#xff0c;最终完成一个通用的redission starter。并…

解决安装赤店供应链云仓系统提示:“对不起,本网站系统更新已到期,请联系官方niushop客服续费!”

最近一个客户找我说自己从第三方购买的赤店云仓系统安装的时候提示&#xff1a;“对不起&#xff0c;本网站系统更新已到期&#xff0c;请联系官方x’x’x&#xff01;”&#xff0c;第一感觉肯定是授xxx权验证的问题&#xff0c;问询得知他是第三方买的非商业版&#xff0c;那…

基于Java微信小程序的的儿童阅读系统的详细设计和实现(源码+lw+部署文档+讲解等)

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不…

2024HarmonyOS应用开发者高级认证 最新题库第二部分

单选题 1.以下哪个装饰器用来表示并发共享对象。&#xff08;D&#xff09; AShared BState CStyle DSendable 2.hiAppEvent提供的Watcher接口&#xff0c;需要订阅到OS的崩溃事件&#xff0c;正确的实现方式(选下面这个) hiAppEvent.addWatcher({ name:"watcher&…

1.DBeaver连接hive数据库

1.hive开启远程服务&#xff0c;linux中直接输入&#xff1a;hiveserver2 2.解压dbeaver和hive-jdbc-2.1.1.zip 3.双击打开 4.数据库&#xff0c;新建连接 5.搜索hive 6.配置参数 7.编辑驱动设置 8.添加jar包 9.测试连接 10.右击&#xff0c;新建sql编辑器 11.执行sql 12.调整字…

重磅!继“总环”后,又1本TOP刊(IF=6.9)被On Hold!

【SciencePub学术】继Science of the Total Environment&#xff08;总环&#xff09;后&#xff0c;又突发一本中科院2区TOP刊被On Hold&#xff01;现在高分区期刊似乎成为了科睿唯安的重点关注对象&#xff0c;主打的就是一个“绝不姑息”。 来源&#xff1a;科睿唯安 Biome…

【计算机网络 - 基础问题】每日 3 题(五十二)

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞…

《黑神话悟空》各章节boss顺序汇总

第一章BOSS顺序&#xff1a; 1、牯护院&#xff1a;犀牛精&#xff0c;位于苍狼岭娟&#xff0c;击败后能获得定身术。 2、广智&#xff1a;火刀狼&#xff0c; 位于观音禅院&#xff0c;击败后获得广智变身&#xff0c;记得敲钟。 3、蓝皮幽魂&#xff1a;蓝皮大头&#xff0…

力扣 困难 52.N皇后II

文章目录 题目介绍题解 题目介绍 题解 法一&#xff1a;返回51题N皇后List的长度 法二&#xff1a; class Solution {private int n, ans;private boolean[] onPath, diag1, diag2;public int totalNQueens(int n) {this.n n;onPath new boolean[n];diag1 new boolean[n * …

Android 开发 TabLayout 自定义指示器长度

前言 原生 TabLayout 的指示器长度是充满整个屏幕的&#xff0c;但在实际开发中 UI 会设计成 指示器的长度等于或者小于标题字体长度&#xff0c;如图 如果设置成跟字体长度一样即使用 API: mTabLayout.setTabIndicatorFullWidth(false);或者在 xml 布局文件中的TabLayout标签…