Codeforces Round 975 (Div. 2)

news2024/9/28 18:49:52

传送门:https://codeforces.com/contest/2019

B. All Pairs Segments

题意:

首先样例解释一下:

一共有:[1,2],[1,3],[1,5],[1,6],[1,7],[2,3],[2,5],[2,6],[2,7],[3,5],[3,6],[3,7],[5,6],[5,7],[6,7]

点 1,7 在5个线段中包含,点2,4,6在9个线段中包含,点3,5在11个线段中包含

所以查询 5 时,输出2,查询9时,输出3 ...

思路:

                  1             2           3          5           6           7           假设一共有 n 个数

            

在 i 的下标中 左边一共有 i - 1 个数 ,右边有 n - i + 1,相互组合有 ( i - 1 ) * ( n - i + 1 )的贡献

并且 i 可以和右边的数组合 ,一共有 n - i 个贡献

如果没有出现在数组中,比如说 4 ,左边可以有 i - 1 个数,右边有 ( n - i + 1 ) 可以组合,所以有

( i - 1 ) * ( n - i + 1 ) 

AC代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve()
{
    int n , q;cin >> n >> q;
    vector<int> a(n + 1);
    for( int i = 1; i <= n; i++) cin >> a[i];
    map<int,int> mp;
    for( int i = 1; i <= n; i++)
    {
        mp[( i - 1 ) * ( n - i + 1 ) + n - i ]++;
        if( i > 1 )mp[(i - 1) * ( n - i + 1 )] += ( a[i] - a[i-1] - 1 );
    }
    while(q--)
    {
        int x; cin >> x;
        cout << mp[x] << " ";
    }
    cout << endl;
}
signed main()
{
    int tt; cin >> tt;
    while(tt--)solve();
    return 0;
}

  C. Cards Partition

题意:

思路:

假设 mx 时 数组 a 的最大值,sum 是数组 a 的总和

假设牌的大小为  x ,所有牌的数量为 x * mx,但是还有一种可能 ( sum + x - 1 ) / x * x

AC代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve()
{
    int n , k ; cin >> n >> k;
    vector<int> a(n + 1);
    for( int i = 1; i <= n; i++) cin >> a[i];
    int sum = 0; int mx = 0;
    for( int i = 1 ; i <= n; i++)
    {
        sum += a[i]; mx = max( mx , a[i] );
    }
    int ans = 1;
    for( int i = 1 ; i <= n; i++)
    {
        int temp = max( mx * i , ( sum + i - 1 ) / i * i ) ;
        if( temp <= sum + k ) ans = max( ans , i );
    }
    cout << ans << endl;
}
signed main()
{
    int tt; cin >> tt;
    while(tt--)solve();
    return 0;
}

E. Tree Pruning

题意:

思路:(拓扑排序)

AC代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 5e5 + 10;
int h[N], e[2 * N], ne[2 * N], idx;
int Size[N];
queue<int> que;
int leaf[N];
vector<int> dep[N];
bool vis[N]; int sum;
int deg[N];
void add(int a, int  b)
{
    e[idx] = b;
    ne[idx] = h[a];
    h[a] = idx++;
}
void dfs(int u, int fa, int depth)
{
    Size[u] = 1;
    dep[depth].push_back(u);
    for (int i = h[u]; i != -1; i = ne[i])
    {
        int j = e[i];
        if (j == fa)continue;
        dfs(j, u , depth + 1 );
        Size[u] += Size[j];
    }
    if (Size[u] == 1) {
        leaf[u] = 1;
    }
}
void topsort()
{
    while (que.size())
    {
        int x = que.front();
        que.pop();
        if (vis[x]) continue;
        vis[x] = true;
        sum++;
        for (int i = h[x]; i != -1; i = ne[i])
        {
            int j = e[i];
            if (j == 1) continue;
            if (--deg[j] <= 1)que.push(j);
        }
    }
}
void solve()
{
    int n; cin >> n;
    sum = 0; idx = 0;
    while (que.size())que.pop();
    for (int i = 0; i <= n; i++)
    {
        leaf[i] = Size[i] = deg[i] = 0;
        vis[i] = false;
        h[i] = -1;
        dep[i].clear();
    }
 
    for (int i = 0; i < n - 1; i++)
    {
        int a, b; cin >> a >> b;
        add(a, b); add(b, a);
        deg[a]++; deg[b]++;
    }
    dfs(1, -1, 0);
    int ans = 2e18;
    for (int i = 1; i < n; i++)
    {
        int res = 0;
        for (auto e : dep[i])
        {
            res += Size[e] - 1;
        }
        ans = min(ans, res + sum);
        for (auto e : dep[i])
        {
            if (leaf[e])
            {
                que.push(e);
            }
        }
        topsort();
    }
    cout << ans << endl;
}
signed main()
{
    int tt; cin >> tt;
    while (tt--)solve();
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android SQLite的基本使用、生成Excel文件保存到本地

1. Android SQLite的基本使用 1.1. SQLiteOpenHelper Android 底层已经通过一个SQLiteOpenHelper的抽象类将数据库的创建&#xff0c;以及修改&#xff0c;更新等都放在了里面。 要使用它必须实现它的OnCreate(SQLiteDatabase db)&#xff0c;onUpgrade(SQLiteDatabase db, int…

一些硬件知识(二十五)

cadence设置led颜色&#xff1a; 切换到Current propeties才会有颜色选选项&#xff0c;点击红色就可以选择其他的颜色&#xff1a; 手机字库是维修人员对FLASH MEMORY的俗称&#xff0c;其真实名字是闪速存储器&#xff0c;简称闪存&#xff0c;相当于手机的“硬盘”&#xff…

【Linux网络】详解TCP协议(3)

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; Linux网络 &#x1f389;其它专栏&#xff1a; C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好&#xff0c;本片文章将会讲解 TCP的流量控制和滑动窗口 的相关内容。 如果看到最后您觉得这篇…

VB.net读写NDEF标签URI智能海报WIFI蓝牙连接

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 Public Class Form1Dim oldpicckey(0 To 5) As Byte 卡片旧密码Dim newpicckey(0 To 5) As Byte 卡片新密码Function GetTagUID() As StringDim status As ByteDim myctrlword As …

Android手机投屏方案实现方式对比

文章目录 1.概述2.术语解释2.1 miracast2.2 scrcpy2.4 Wifi Direct2.5 app_process 3.技术实现对比3.1 Miracast3.1.1 Miracast介绍3.1.2 Miracast原理3.1.3 Miracast优缺点分析 3.2 Scrcpy3.2.1 scrcpy 介绍3.2.2 scrcpy的实现原理3.2.3 scrcpy的优缺点分析 3.3 Google cast3.…

Nisshinbo日清纺pvs1114太阳模拟器手测

Nisshinbo日清纺pvs1114太阳模拟器手测

影响上证50股指期货价格的因素有哪些?

上证50股指期货&#xff0c;作为反映上海证券交易所最具代表性50只股票整体表现的期货合约&#xff0c;其价格同样受到一系列复杂因素的驱动。以下是对影响上证50股指期货价格的主要因素进行的详细分析。 因素一、期货合约的供求关系 股指期货市场是一个由多头和空头双方共同…

关于AI副业,能说的都说了(最核心3大赛道、机会、方向)

AI&#xff0c;是生产力工具~ AI&#xff0c;也是焦虑和痛点 一直有小伙伴在问AI副业的事儿&#xff0c;之前也分享过很多。 但是&#xff0c;很多人对AI于副业的作用&#xff0c;过于表面和形式&#xff0c;所以&#xff0c;狂金来叨叨一下最核心的3大赛道&#xff0c;希望…

腾讯云SDK购买流程

音视频终端 SDK 需购买对应 License/套餐获得使用授权&#xff0c;本文将对购买 License/套餐的操作进行详细指引。 您可首先参考计费概述 确认您需要购买的内容&#xff0c;随后参考本文进行购买。本文仅提供 SDK 授权费用所需资源的购买&#xff0c;如果您需要使用其他相关云…

深入浅出MySQL事务处理:从基础概念到ACID特性及并发控制

1、什么是事务 在实际的业务开发中&#xff0c;有些业务操作要多次访问数据库。一个业务要发送多条SQL语句给数据库执行。需要将多次访问数据库的操作视为一个整体来执行&#xff0c;要么所有的SQL语句全部执行成功。如果其中有一条SQL语句失败&#xff0c;就进行事务的回滚&a…

回答网友一个数据显示的问题

事情是这个样子的 俺在一个C# 群里&#xff0c;一个问:"打开form2&#xff0c;可以同步显示form1的表格内容&#xff0c;在form2增删改表格内容之后&#xff0c;可以同步到form1中"。 俺 打开 delphi 放了几个 数据敏感 控件&#xff0c;演示了一下。还说了 一行…

Windows环境下训练开源图像超分项目 ECBSR 教程

ECBSR 介绍 ECBSR&#xff08;Edge-oriented Convolution Block for Real-time Super Resolution&#xff09;是一种针对移动设备设计的轻量级超分辨率网络。它的核心是一种可重参数化的构建模块&#xff0c;称为边缘导向卷积块&#xff08;ECB&#xff09;&#xff0c;这种模…

数集相等定义凸显“R各元x的对应x+1的全体=R”是几百年重大错误

黄小宁 变量x所取各数也均由x代表&#xff0c;x代表其变域&#xff08;x所有能取的数组成的集&#xff09;内任一元。设集A&#xff5b;x&#xff5d;表A各元均由x代表&#xff0c;&#xff5b;x&#xff5d;中变量x的变域是A。其余类推。因各数x可是数轴上点的坐标所以x∈R变换…

详解ES5中的数组方法

7.9 ES5中的数组方法 ECMAScript 5定义了9个新的数组方法来遍历、映射、过滤、检测、简化、搜索数组。 7.9.1 forEach() 7.9.2 map() 将调用的数组的每个元素传递给指定的函数&#xff0c;并返回一个数组&#xff0c;包含函数的返回值。 例如数组的每个元素的立方&#xf…

基于SpringBoot+Vue的大学生勤工助学兼职管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

【优选算法】(第八篇)

目录 串联所有单词的⼦串&#xff08;hard&#xff09; 题目解析 讲解算法原理 编写代码 最⼩覆盖⼦串&#xff08;hard&#xff09; 题目解析 讲解算法原理 编写代码 串联所有单词的⼦串&#xff08;hard&#xff09; 题目解析 1.题目链接&#xff1a;. - 力扣&#…

防砸安全鞋这样挑,舒适又安心!

在复杂多变的工作环境中&#xff0c;安全始终放在首位&#xff0c;特别是对于那些在工地、车间等危险环境中工作的朋友们来说&#xff0c;一双好的防砸安全鞋无疑是工作中的“守护神”。然而&#xff0c;市面上的防砸安全鞋种类繁多&#xff0c;如何挑选一双既舒适又安心的鞋子…

unreal engine5制作动作类游戏时,我们使用刀剑等武器攻击怪物或敌方单位时,发现攻击特效、伤害等没有触发

UE5系列文章目录 文章目录 UE5系列文章目录前言一、问题分析二、解决方法1. 添加项目设置碰撞检测通道2.玩家角色碰撞设置3.怪物角色碰撞预设 最终效果 前言 在使用unreal engine5制作动作类游戏时&#xff0c;我们使用刀剑等武器攻击怪物或敌方单位时&#xff0c;发现攻击特效…

10.C++程序中的循环语句

C中提供了三种循环语句&#xff08;for循环&#xff0c;while循环以及do-while循环)来使程序员可以更方便地对数据进行迭代操作。 if语句 for语句的格式为&#xff1a; for(初始化语句&#xff1b;循环条件&#xff1b;迭代语句&#xff09; &#xff5b; 代码块 &#x…

网上找旅游搭子靠谱吗?分享国庆与旅行搭子出行的冒险记

国庆将至&#xff0c;我那颗渴望旅行的心愈发躁动不安。一直想在这个难得的假期里去领略祖国的大好河山&#xff0c;思来想去&#xff0c;决定去神秘而美丽的张家界。然而&#xff0c;身边的朋友不是已有安排&#xff0c;就是对这个目的地不感兴趣。无奈之下&#xff0c;我只好…