首页 > 其他分享 >2024.12.10 周二

2024.12.10 周二

时间:2024-12-11 12:21:53浏览次数:2  
标签:2024.12 10 cnt cout int cin long 周二 define

2024.12.10 周二


Q1. 1100

给你一个序列,你可以对这个序列中的每个数(0<=ai<100)进行拆分,使得最后整个序列单调不递减,询问是否有解。

Q2. 1200

给定一数组,可任意改变顺序,问是否可使a1%a2%a3%...%an!=0。

Q3. 1300

给定数组a,数字x,y。问<i,j>的对数使(ai+aj)%x==0,(ai-aj)%y==0。

Q4. 1500

有 n 条跑道,第 i 条跑道有 ai​ 节。给定整数 u,跑第 k 节会使分数加 u-k+1(有可能为负数)。给定 q 个询问,每个询问会给定l,u,求最小的 r,跑完l到r所有的跑道使得你得到的分数最大。

------------------------独自思考分割线------------------------

  • 被Q3卡住,Q2猜猜猜。

A1. 2点

1.发现如果有合法序列,一定是前一部分一位数,后一部分是两位数。

2.贪心去考虑分界线自然是越靠后越好。思路:维护前位最大值,ai能拆就拆,当不拆的时候依然<maxw则无解。然后代码分类讨论进行实现。小细节导致wa2发。

A2. 2点

1.妙妙题。排序后发现如果最小值唯一则存在。

2.最小值不唯一时:如果存在ai%a1!=0,则ai%a1<a1,为唯一最小值。当时猜对了,感觉是这样但是不能证明充要性。

A3. 2点

1.首先对于n^2种方案,要有一种遍历加快速统计配对数的思想。

2.对于满足条件的a,b:(a+b)%x=0,(a-b)%y=0,若a确定,则b满足b%x=(x-a%x)%x,b%y=a%y。数学题:同余还是有意思的,可以快速统计线性数。

A4. 3点

1.前缀和快速统计块数的和。

2.加分是关于块数单调递(关于跑道不连续)函数,快速找到最右侧的r使得获得的分数都是正的,使用二分。

3.如果r<n,考虑第r+1跑道,加分有正有负。r+2以后全是负数不再考虑。

------------------------代码分割线------------------------

A1.

#include <bits/stdc++.h>
#define int long long //
#define endl '\n'     // 交互/调试 关
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
void _();
signed main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cout << fixed << setprecision(6);
    int T = 1;
    cin >> T;
    while (T--)
        _();
    return 0;
}

void _()
{
    int n;
    cin >> n;
    int f = 1, maxw = 0;
    while (n--)
    {
        int x;
        cin >> x;
        if (x < maxw)
            f = 0;
        if (!f)
            continue;
        if (x < 10)
        {
            maxw = x;
            continue;
        }
        else
        {
            if (x / 10 <= x % 10 && x / 10 >= maxw)
                maxw = x % 10;
            else
                maxw = x;
        }
    }
    cout << (f ? "YES" : "NO") << endl;
}

A2.

#include <bits/stdc++.h>
#define int long long //
#define endl '\n'     // 交互/调试 关
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
void _();
signed main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cout << fixed << setprecision(6);
    int T = 1;
    cin >> T;
    while (T--)
        _();
    return 0;
}

void _()
{
    int n;
    cin >> n;
    map<int, int> cnt;
    for (int i = 0; i < n; i++)
    {
        int x;
        cin >> x;
        cnt[x]++;
    }
    int minw = (*cnt.begin()).first;
    int f = 0;
    if (cnt[minw] > 1)
    {
        for (auto [x, cy] : cnt)
            if (x % minw)
                f = 1;
    }
    if (cnt[minw] == 1)
        f = 1;
    cout << (f ? "YES" : "NO") << endl;
}

A3.

#include <bits/stdc++.h>
#define int long long //
#define endl '\n'     // 交互/调试 关
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
void _();
signed main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cout << fixed << setprecision(6);
    int T = 1;
    cin >> T;
    while (T--)
        _();
    return 0;
}

void _()
{
    int n, x, y;
    cin >> n >> x >> y;
    int mul = x * y;
    map<pair<int, int>, int> has;
    int res = 0;
    for (int i = 0; i < n; i++)
    {
        int a;
        cin >> a;
        // bug2(x - a % x, (x - a % x) % x); a==0时
        res += has[{(x - a % x) % x, a % y}];
        has[{a % x, a % y}]++;
    }
    cout << res << endl;
}

A4.

#include <bits/stdc++.h>
#define int long long //
#define endl '\n'     // 交互/调试 关
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
void _();
signed main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cout << fixed << setprecision(6);
    int T = 1;
    cin >> T;
    while (T--)
        _();
    return 0;
}

void _()
{
    int n;
    cin >> n;
    vector<int> pre(n + 2);
    for (int i = 1; i <= n; i++)
        cin >> pre[i], pre[i] += pre[i - 1];

    int q;
    cin >> q;
    while (q--)
    {
        int L, u;
        cin >> L >> u;
        auto cal = [&](int cnt)
        {
            return (2 * u - cnt + 1) * cnt / 2;
        };
        auto cnt = [&](int i)
        {
            return pre[i] - pre[L - 1];
        };
        int l = L, r = n + 1;
        while (r - l - 1)
        {
            int mid = l + r >> 1;
            if (cnt(mid) <= u)
                l = mid;
            else
                r = mid;
        }
        int R = l;
        // bug(R);
        if (R < n && cal(cnt(R + 1)) > cal(cnt(R)))
            R++;
        // bug2(cal(cnt(R + 1)), cal(cnt(R)));
        cout << R << ' ';
    }
    cout << endl;
}

标签:2024.12,10,cnt,cout,int,cin,long,周二,define
From: https://www.cnblogs.com/jkkk/p/18599233

相关文章

  • 软件缺少d3dx10.dll文件及错误提示问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个d3dx10.dll文件(挑选合适的版本文件)把它放......
  • 软件缺少d3dx10_33.dll文件及错误提示问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个d3dx10_33.dll文件(挑选合适的版本文件)把它......
  • 100个OSPF术语大全,掌握后你就是OSPF高手!
    1.Router-IDRouter-ID(RID)是运行OSPF的每台路由器的名字/标识,表现形式如IP地址5.5.5.5。它是全网唯一的,用于选举DR和BDR时的优先级判断。2.Loopback接口Loopback接口是一种软件的、逻辑的接口,用于配置Router-ID,通常设置为设备的Loopback接口的IP地址。3.IR路由器IR(I......
  • 【2024-12-10】1+1>2
    20:00人而好善,福虽未至,祸已远矣。                                                 ——曾子昨天,何太下午微信我说,工作很心累,我追问了原因,是因为手头多了几项全新的没......
  • 计算机毕业设计—311017 spring boot酒店预定系统(源码免费领)
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对酒店客房预定等问题,对酒店信息管理进行研究分析,然后开发设计出酒店预订系统以解决问题。......
  • 12.10随笔
    这里是12.10随笔。题目留档:实现线性探测法的查找函数。函数接口定义:PositionFind(HashTableH,ElementTypeKey);其中HashTable是开放地址散列表,定义如下:defineMAXTABLESIZE100000/*允许开辟的最大散列表长度*/typedefintElementType;/*关键词类型用整型......
  • 【Python】【练习】24.12.10
    一、题目描述二、题目解答importrandomdefredEnv(k,rest):m=random.random()*restreturnmtotal=float(input("请输入红包金额:"))num=int(input("请输入红包个数:"))remain=totalforiinrange(num-1):money=redEnv(i,remain......
  • Diary - 2024.12.10
    AtcoderARC189EStraightPath。怎么都觉得很简单,我是不是废了???只是记录一下可能比较合理的思考过程。首先发现的是\(n=2,3\)必定无解。然后手玩一下\(n=4\),能找到一个\(\max=3\)的构造。于是大胆猜测下界就是\(3\)。对应构造:横的为\(1\),竖的为\(2\),对角线......
  • 【教学类-36-08】20241210对称蝴蝶——去白边(图案最大化)一大和一大二小
    背景需求前期制作了对称蝴蝶,用来涂色,幼儿很喜欢【教学类-36-07】20230707三只对称蝴蝶(midjounery-niji)(涂色、裁剪、游戏(飞舞的蝴蝶))_对称图案涂色-CSDN博客文章浏览阅读498次。【教学类-36-07】20230707三只对称蝴蝶(midjounery-niji)(涂色、裁剪、游戏(飞舞的蝴蝶))_对称图案涂......
  • 10 大IDEA 插件集合,解放双手!!
    1、POJOtoJSON开发工作中,常常在设计完API后,会使用如GsonFormat工具来将设计文档上的JSON格式数据生成Java实体类,这可以节省很多时间。不过,在某些情况下,我们需要将已有实体类转换为JSON格式数据,那我通常不得不依赖于手动执行单元测试或在main方法中,使用JSON处......