首页 > 其他分享 >Codeforces Round 909 (Div. 3)--题目描述无法名状

Codeforces Round 909 (Div. 3)--题目描述无法名状

时间:2024-08-02 16:08:56浏览次数:13  
标签:题目 这题 -- 909 Codeforces long int 字串 include

好吧,可能是我的文字功底太弱了,首先滴就是这个B题

题目链接

我一开始还以为这个能排序,就是算排完序之后的最大差,但是仔细一看题目,好像不要求使用排序,于是就尝试暴力做法。我发现的暴力做法是枚举k,直到k == n / 2为止,当时是因为没有开long long导致WA了,后面发现时间不是怎么多就没有在意这道题,现在,差不多弄懂了。

然后就是这个C题

题目链接

碰到这种字串类型的题目我一般是想用暴搜的,但是这题数据范围给的太大,暴力肯定过不了,但是当时一时半会也想不出来别的O(n)的方法。这题说的满足条件的字串有一个条件,前后两个数是奇偶交替,这个条件好处理,我们需要想出一个O(n)的方法,或者是O(nlogn)的方法,首先O(n)的方法一般是遍历数组,然后在遍历的时候进行相关操作。这题我们需要用到一点贪心的思想,首先想要让选中的数组串尽可能的大就需要第一个数就是正数,然后在遍历的时候数组串相加不能为复数,如果是负数,就重新开始算字串,因为假如有一个正数,我选这个正数为字串,是一定比0大的结果。最后我们得到一个算法:让i遍历整个数组,然后用一个变量来计数,如果sum < 0,那么重新计数,这就能包含两种情况,第一是算进去的第一个数就是负数,第二个是数组串的和是负数,其实都是一样的,第一种就是第二种的特殊情况,然后遇到前后奇偶不一的情况也是sum = 0 重新计数,最后让ans在sum里面取最大值就行。

最后是D题

题目链接

这题要稍微用到点中学数学知识,题目的要求是要我们找到i < j并且(2a)(2^b) == (2b)(2^a),这个式子我们可以简化,两边同时去对数,会得到a * 2^b == b * 2^a然后再去一遍得到 aln2 - lna == bln2 - lnb,就是相当于函数x*ln2 - lnx的图像上有没有X0,X1为整数且值相等的点

我去画了一下这个函数的图像:
image

发现除了1和2,其他所有的数满足条件的只有这个数和这个数自己,那么就好办了,我们只需要用一个map来存下出现的数的次数,然后算他自己和自己的所有不重复的组合即可,这里我们注意,我们可以把1和2当成同一个数因为条件上,1和2是相同的性质。这里我们假如我们有个数n出现次数k那么他自己所有的排列为((k - 1)*k)) / 2注意不能直接除2,因为k - 1或k不确定奇偶性,可能有向下取整的误差。最后,注意开long long

D题码:

#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
#include <map>
#define int long long //爆了int就用这个,方便快捷
using namespace std;

const int N = 200010;

void solve()
{
    map<int, int> a;
    int n, x;
    cin >> n;
    vector<int> b(n + 1, 0);
    for (int i = 1; i <= n; i++)
    {
        cin >> x;
        b[i] = x;
        a[x]++;
    }
    int ans = 0;
    for (int i = 1; i <= n; i++)
    {
        if (a[b[i]] == 0)
            continue;
        if (b[i] == 1 || b[i] == 2)
        {
            ans += ((a[1] + a[2] - 1) * (a[1] + a[2])) / 2;
            a[1] = 0, a[2] = 0;
        }
        else
        {
            ans += ((a[b[i]] - 1) * a[b[i]]) / 2;
            a[b[i]] = 0;
        }

    }

    cout << ans << endl;
}

signed main() //注意用了define int就需要把原先的int main换成signed main
{

    int tNum;
    cin >> tNum;
    for (int i = 0; i < tNum; i++)
    {
        solve();
    }

    return 0;
}

标签:题目,这题,--,909,Codeforces,long,int,字串,include
From: https://www.cnblogs.com/chhh31/p/18338950

相关文章

  • [系统设计]秒杀系统
    如何设计一个秒杀系统?设计秒杀系统之前,我们首先需要对秒杀系统有一个清晰的认识。秒杀系统主要为商品(往往是爆款商品)秒杀活动提供支持,这个秒杀活动会限制商品的个数以及秒杀持续时间。为什么秒杀系统的设计是一个难点呢?是因为它的业务复杂么?当然不是!秒杀系统的业务逻辑非常......
  • wordpress站点转移
    title:wordpress站点转移date:2024/7/1311:11:11tag:linux学习categories:wordpress建设description:搭建后的优化top_img:https://cdn.jsdelivr.net/gh/xiaowang872/blogimage@main/images/QQ%E6%88%AA%E5%9B%BE20240713105724.pngcover:https://cdn.jsdelivr.net/......
  • 如何在两个不同的内存位置创建 int 1 ?
    我想向某人展示如何使用is而不是==来比较整数可能会失败。我认为这会起作用,但事实并非如此:>>>importcopy>>>x=1>>>y=copy.deepcopy(x)>>>xisyTrue我可以轻松地为更大的整数做到这一点:>>>x=500>>>y=500>>>xis......
  • 科大讯飞AI学习机P30 值得入手吗 功能介绍
    科大讯飞AI学习机P30是一款功能强大的学习设备,适用于小学到高中各个年龄段的学生。其拥有6GB内存和256GB存储空间,运行更加流畅,存储更加充裕,能够满足学生各种学习和娱乐需求。11英寸护眼平板设计有效减少了眼睛疲劳,保护了学生的视力健康。此外,P30还配备了丰富的英语学习资源和交互......
  • 【C#】WPF实现HaIcon图像缩放、移动
    1.HaIcon实现的C#代码////FilegeneratedbyHDevelopforHALCON/DOTNET(C#)Version12.0////ThisfileisintendedtobeusedwiththeHDevelopTemplateor//HDevelopTemplateWPFprojectslocatedunder%HALCONEXAMPLES%\c#usingSystem;usingSystem.Thre......
  • 原来还能免费做报表?后悔才知道这款免费报表工具
    在现代商业环境中,报表已成为数据分析和决策支持的关键工具。无论是销售业绩的跟踪、财务报表的编制,还是市场调研的结果汇总,报表都能有效地将复杂的数据以简洁明了的形式呈现给相关人员。例如,企业可以通过月度销售报表清晰地了解销售趋势,及时调整市场策略,从而提升业绩。然而,制作一......
  • Linux新建一个服务
    新建一个服务你可以创建一个Systemd服务单元,以便在系统启动时运行特定的脚本或程序。首先,创建一个.service文件,例如my_service.service,并将其放在/etc/systemd/system/目录下。在这个文件中,定义你的服务,包括启动方式、依赖性等。例如,my_service.service文件可能如下所示:[Unit]......
  • Linux多硬盘合并统一挂载
     文章目录一、问题描述二、基本概念三、操作流程1.查看磁盘2.创建PV3.查看PV信息4.创建VG5.查看卷组6.创建逻辑卷7.查看分区8.格式化分区9.挂载目录10.开机自动挂载一、问题描述书接上回Linux服务器挂载新硬盘,最开始我这台机器挂载了一块4T的硬盘,后来空间不够用了又加......
  • conda环境使用
    创建名为new_env的conda环境,python版本号自定义:condacreate-nnew_envpython=3.9Anaconda创建虚拟环境失败解决办法,详见参考资料[2]:创建condarc文件(在C:\Users\xjl):condaconfig--addchannelsr将此文件内容替换为:channels:http://mirrors.tuna.tsinghua.edu.cn/anacon......
  • Pytest 找不到我的设置目录
    我尝试启动pytest,但pytest找不到设置文件我在virtualenv中Python3.11.9和pytest8.3.2ImportError:Nomodulenamed'drf.settings'pytest-djangocouldnotfindaDjangoproject(nomanage.pyfilecouldbefound).Youmustexplicitlyadd......