首页 > 其他分享 >2024.11.28周四

2024.11.28周四

时间:2024-11-28 21:21:51浏览次数:11  
标签:周四 2024.11 cout int res 28 数组 auto define

2024.11.28周四

  • Q1. 1200
    给定a,b。构造一数组,满足平均值为a,中位数为b。

  • Q2. 1300
    给定4个数字,输出1~5中未出现的数字。

  • Q3. 1500
    给定一数组,每次操作你可以选择一个元素ai在数组右边添加i-1个0。问任意操作数组长度的最大值。

  • A1. 9mins
    考虑等差数列,3个元素便能构造出来:4a-3b,b,2b-a。

  • A2. 4mins
    数组记录一下即可。

  • A3. 补:假思路:bfs会MLE 还不知道为什么
    一个巧妙的做法:考虑每个元素最多贡献一次,某个元素可以为其他元素作通路。
    选择某个数可以将数组长度从a->b,处理每个数,建立有向图。从n跑一遍找最大值。

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
const int mod = 998244353;
const int N = 10 + 5e5;
void _();
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t = 1;
    // cin >> t;
    while (t--)
        _();
    return 0;
}

//  给定a,b。构造一数组,满足平均值为a,中位数为b。
//  9mins
//  考虑等差数列,3个元素便能构造出来:4a-3b,b,2b-a。
void _()
{
    int a, b;
    cin >> a >> b;
    int x = 4 * a - 3 * b, y = 2 * b - a;
    cout << 3 << endl;
    cout << x << ' ' << b << ' ' << y << 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);
    int T = 1;
    // cin >> T;
    while (T--)
        _();
    return 0;
}

//  给定4个数字,输出1~5中未出现的数字。
//  4mins
//  水题。
void _()
{
    int n = 4;
    int has[6] = {};
    while (n--)
    {
        int x;
        cin >> x;
        has[x] = 1;
    }
    for (int i = 1; i < 6; i++)
        if (!has[i])
        {
            cout << i << endl;
            return;
        }
}

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
const int mod = 998244353;
const int N = 10 + 5e5;
void _();
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t = 1;
    cin >> t;
    while (t--)
        _();
    return 0;
}

//  给定一数组,每次操作你可以选择一个元素a[i](满足a[i]是从右向左数第a[i]个)在数组右边添加i-1个0。问任意操作数组长度的最大值。
//  假思路:bfs会MLE 还不知道为什么
//  一个巧妙的做法:考虑每个元素最多贡献一次,某个元素可以为其他元素作通路。
//  选择某个数可以将数组长度从a->b,处理每个数,建立有向图。从n跑一遍找最大值。
void _()
{
    int n;
    cin >> n;
    map<int, vector<int>> e;
    for (int i = 1; i <= n; i++)
    {
        int x;
        cin >> x;
        e[x + i - 1].push_back(x + 2 * i - 2);
        // bug2(x + i - 1, x + 2 * i - 2);
    }
    map<int, bool> vis; // core
    //  2.
    // int res = n;
    // function<void(int)> dfs = [&](int u)
    // {
    //     if (vis[u])
    //         return;
    //     vis[u] = 1;
    //     res = max(res, u);
    //     for (auto v : e[u])
    //         dfs(v);
    // };
    // dfs(n);
    // cout << res << endl;
    //  1.
    function<int(int)> dfs = [&](int u)
    {
        if (vis[u])
            return 0ll;
        vis[u] = 1;
        int maxw = u;
        for (auto v : e[u])
            maxw = max(maxw, dfs(v));
        return maxw;
    };
    cout << dfs(n) << endl;
}

//   bfs_debug死循环  原理:数是递增的 从而中止循环 bug:增量为0
// void _()
// {
//     // srand(time(0));
//     int n = 3e5;
//     cin >> n;
//     vector<int> w(n + 1);
//     map<int, bool> in_q;
//     map<int, vector<int>> has;
//     for (int i = 1; i <= n; i++)
//     {
//         int x;
//         cin >> x;
//         // x = rand() % (int)1e12;
//         // bug(x);
//         w[i] = i - 1;
//         if (i > 1)
//             has[x - (n + 1 - i)].push_back(i);
//         // bug(x - (n + 1 - i));
//     }
//     int res = 0;
//     int cnt = 0;
//     auto bfs = [&]()
//     {
//         queue<int> q;
//         for (auto i : has[0])
//         {
//             q.push(w[i]);
//             res = max(res, w[i]);
//             in_q[w[i]] = 1;
//         }

//         int cnt = 0;
//         while (q.size())
//         {
//             // cnt++;
//             // if (cnt > 20)
//             //     break;
//             auto x = q.front();
//             // bug(x);
//             q.pop();
//             in_q[x] = 0;
//             for (auto i : has[x])
//             {
//                 // bug2(x, i);
//                 if (!in_q[x + w[i]])
//                     q.push(x + w[i]);
//                 res = max(res, x + w[i]);
//             }
//         }
//     };

//     bfs();
//     res += n;
//     cout << res << endl;
// }

// void _()
// {
//     int n;
//     cin >> n;
//     vector<int> w(n + 1);
//     map<int, vector<int>> has;
//     for (int i = 1; i <= n; i++)
//     {
//         int x;
//         cin >> x;
//         w[i] = i - 1;
//         has[x - (n + 1 - i)].push_back(i);
//     }
//     int res = 0;
//     function<void(int,int)>dfs=[&](int u,int ans)
//     {
//         for(auto i:has[u])
//         {
//             ans+=w[i];
//         }
//     }
//     cout << res << endl;
// }

标签:周四,2024.11,cout,int,res,28,数组,auto,define
From: https://www.cnblogs.com/jkkk/p/18574878

相关文章

  • 11.28 模拟赛
    总结T1读完题就会了。感觉没什么坑直接写。10min过大样例。没啥好拍的就不拍了。T2。感觉不难啊,这种模拟Kruskal的题都做一堆了。想。谔谔正解会不了一点。写个乱搞,看看能不能过大样例。一开始是没过的,因为少写了一种情况。很久之后意识到改过来发现大样例过了!然后没对拍......
  • 2024.11.[~, 28]训练记录
    好,今天是noip2024前最后一次模拟。但是我参加不了noip。还是认真参加了模拟赛。自主复习就写训练记录吧。落下很多天了。今天的题疑似有点难订正了。那就先写今天的。11.28noip模拟今天的考试时间为了全真对标特意推迟了半个小时,写到最后还是有点困了。毕竟平常一点钟睡午......
  • 摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/11/28
    LearningRoadmap:Section1:IntrotoParallelProgramming&MUSADeepLearningEcosystem(摩尔线程国产显卡MUSA并行编程学习笔记-2024/11/20)Ubuntu+Driver+Toolkit+conda+pytorch+torch_musa环境安装(摩尔线程国产显卡MUSA并行编程学习笔记-2024/11/24-CSDN博客)C/C++R......
  • 2024.11.28
    DPP1048[NOIP2005普及组]采药-洛谷|计算机科学教育新生态#include<iostream>usingnamespacestd;intt[101],w[101];intdp[1001];intmain(){intT,M;cin>>T>>M;for(inti=1;i<=M;i++){cin>>t[i]>>w[i];}......
  • 2024.11.20训练记录
    pack设当前手上的钱数为x。二分一段一段跳的复杂度是对的。因为,如果下一段的代价总和sum<\dfrac{x}{2}。那么这一段的下一个数肯定也小于\dfrac{x}{2}。因为是从大到小排。所以还能继续选下一个数,引出矛盾。所以每段的代价总和只能大于\dfrac{x}{2}。那段数就是log级别的。......
  • 2024-11-28:边界元素是最大值的子数组数目。用go语言,给定一个正整数数组 nums,需要找到
    2024-11-28:边界元素是最大值的子数组数目。用go语言,给定一个正整数数组nums,需要找到满足子数组中第一个和最后一个元素都是该子数组中的最大值的子数组数量。输入:nums=[1,4,3,3,2]。输出:6。解释:总共有6个子数组满足第一个元素和最后一个元素都是子数组中的最大值:......
  • 2024.11.28 test
    此后再无NOIP模拟赛。A给一个包含\(n\)个布尔变量的后缀逻辑表达式,给定这\(n\)个变量的初值,请你求出:若想改变表达式的值,最少需要改变(取反)其中多少个变量的值。树形dp,只需要设\(f_u\)表示\(u\)子树的答案。B给定一个排列,判断是否存在等差子序列。考虑枚举中间的那......
  • 国标GB28181-2016平台LiteGBS国标GB28181设备管理平台摄像机IP地址丢失怎么办?
    在LiteGBS国标GB28181设备管理软件中,摄像机IP地址是连接和管理监控设备的关键信息。正确配置和维护IP地址对于确保视频监控系统的稳定性和可靠性至关重要。如果摄像机的IP地址出现问题,可能会导致监控画面无法访问、设备无法远程管理等状况,从而影响到整个监控系统的效能。因此,了解......
  • DSPf28335-GPIO
    GPIO(通用输入输出端口generalpurposeintputoutput)DSPTMS320F28335一共176个引脚。包括:电源引脚、晶振引脚、复位引脚、下载引脚、BOOT引脚、GPIO引脚。除了上述的5类引脚外的GPIO引脚一共88个,88个GPIO引脚又分为A、B、C三类。A类为0~31;B类为32~63;C类为64~87;GPIO结构框......
  • 11.28 CW 模拟赛 赛时记录
    看题有外校的一起考,那我爆个\(0\)\(\rm{A}\)至少不能是简单题考虑找规律一类的东西,看能不能推出来?\(\rm{B}\)啊?也是需要脑子,多半不会做,应该也是规律题\(\rm{C}\)至少暴力可以打,争取达到高档暴力\(\rm{D}\)能打到这在想吧完了嘛时间分配:\(1\rm{h}+......