首页 > 其他分享 >2023湖北省赛

2023湖北省赛

时间:2023-05-07 20:33:41浏览次数:58  
标签:int ll cin 湖北省 solve 2023 void op

2023湖北省赛

M

解方程

void solve()
{
    ll x,y;  cin>>x>>y;
    bool ok = false;
    ll z = x * 1000 - y;
    for(ll a = 0; a <= 1000000; a++)
    {
        ll t = a * 1000 - z;
        if(t % 1500 == 0)
        {
            ll c = t / 1500;
            ll b = x - a - c;
            if(a >= 0 && b >= 0 && c >= 0 && a + b + c == x)
            {
                ok = true;
                cout<<a<<" "<<b<<" "<<c<<endl;
                break;
            }
        }

    }
    if(!ok)
        cout<<-1<<endl;
}

C

思维,对角线放法,放一个对角线隔一列继续放对角线

void solve()
{
    ll n, m;
    cin>>n>>m;
    ll ans = 0;
    if(m > n)
        swap(n, m);
    ans = m + (n - m + 1) / 2;

    cout<<ans<<endl;
}

H
首先观察到deg权值的数量很少,只需要记录deg权值为\(x\)的数量,再与其他权值\(x'\)做那个公式的值乘\(x\)的数量乘\(x'\)的数量即可

我的作法离散化了一下

typedef long long ll;
const ll mod = 998244353;
const int N = 1e6 + 10;
int n, m, cnt;
ll d[N];
vector<int> b;
map<int, int> mp;
ll s[4010];
ll val[4010][4010];
ll id[4000010];
void solve()
{
    cin>>n>>m;
    for(int i = 1; i <= m; i++)
    {
        int u, v;   cin>>u>>v;
        d[u]++, d[v]++;
    }
    for(int i = 1; i <= n; i++)
        b.push_back(d[i]);

    sort(b.begin(), b.end());
    b.erase(unique(b.begin(), b.end()), b.end());

    for(auto &it : b)
        id[it] = ++cnt;
    for(int i = 1; i <= n; i++)
        s[id[d[i]]]++;
    for(auto &it : b)
        for(auto &its : b)
            val[id[it]][id[its]] = (it ^ its) * (it | its) * (it & its);
    ll ans = 0;
    for(int i = 1; i <= cnt; i++)
        for(int j = i + 1; j <= cnt; j++)
            ans = (ans + ((val[i][j] * s[i] % mod) * s[j] % mod)) % mod;
    cout<<ans<<endl;
}

J

思维,模拟,很快得到思路,但样例2看了半天,最后队友读出要满足前缀和\(pre_n \geq 0\)和\(a_1 \geq 0\),记维护前缀和的最大值\(\text{mav}\),对每个\(\text{resources} + a_i < 0\)给它加上前缀和最大值\(\text{mav}\)直到\(\text{resources} \geq 0\),我的第一发漏了考虑除0的情况,RE了一发

typedef long long ll;

const int mod = 998244353;
const int N = 1e5 + 10;
int n;
ll a[N], s[N], mav[N];

void solve()
{
    cin>>n;
    for(int i = 1; i <= n; i++)
        cin>>a[i];
    for(int i = 1; i <= n; i++)
        s[i] = s[i - 1] + a[i];
    if(a[1] < 0 || s[n] < 0)
    {
        cout<<-1<<endl;
        return;
    }
    ll re = 0, ti = 0;
    for(int i = 1; i <= n; i++)
    {
        mav[i] = max(mav[i - 1], s[i]);
        if(re + s[i] >= 0)
            re += s[i], ti++;
        else
        {
            ll d = abs(re + s[i]);
            if(mav[i] == 0)
            {
                cout<<-1<<endl;
                return;
            }
            ll t = d / mav[i] + (d % mav[i] != 0);
            re += t * mav[i] + s[i], ti += t + 1;
        }
    }
    cout<<ti<<endl;
}

F

队友读的,发现是个简单题,他说我写
对于每个回文半径把左区间copy给右区间


char op[N];
int a[N];
void solve()
{
    int n;  cin>>n;
    int m = 2 * n + 2;
    for(int i = 1; i <= m; i++)
    {
        cin>>a[i];

    }
    op[0] = '?', op[1] = '&', op[2] = '|', op[3] = 'a';
    for(int i = 4; i <= m; i++)
    {
        op[i] = '|';
        if(a[i] == 1)
        {

            if(op[i - 1] == 'a')
                op[i + 1] = 'b';
            else
                op[i + 1] = 'a';
            i++;
        }
        else
        {
            for(int r = 1; r <= a[i] - 2; r++)
                op[i + r] = op[i - r];
            i = i + a[i] - 2;
        }
    }
    for(int i = 1; i <= 2 * n + 2; i++)
        if(op[i] == 'a' || op[i] == 'b')
            cout<<op[i];
    cout<<endl;
}

标签:int,ll,cin,湖北省,solve,2023,void,op
From: https://www.cnblogs.com/magicat/p/17380089.html

相关文章

  • 2023-05-07:给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格 0 变成 1 。 返
    2023-05-07:给你一个大小为nxn二进制矩阵grid。最多只能将一格0变成1。返回执行此操作后,grid中最大的岛屿面积是多少?岛屿由一组上、下、左、右四个方向相连的1形成。输入:grid=[[1,0],[0,1]]。输出:3。来自亚马逊、谷歌、微软、Facebook、Bloomberg。答案2023......
  • 【2023.05.07】再见,福州大学
    五一回了一趟学校,想见见学弟,以及收拾一下宿舍第一天晚上九点多差不多到学校,到学校的第一件事就是去和学弟吃烧烤嘛,两年没见的学弟了,之前他因为个人原因所以休学了一年,现在看到他现在好多了,我很开心还见到了吧主和一些学弟网友,很开心网上大家都自称鼠鼠,没想到线下都是帅哥,交流......
  • P9166 [省选联考 2023] 火车站
    P9166[省选联考2023]火车站这道题很抽象,有这么几点注意事项1,火车必须走到尽头才可以停下,所以答案一定会出于输入的这些端点2,火车只能往一个方向走,不可以在中途换向那么这题怎么处理?不会真的要一波操作然后把所有答案排个序吧?我选择标记法!标记答案,省去了排序的过程。那么......
  • 使用IDEA2023创建springMVC项目,web项目
    1.使用idea2022创建web项目 2.新建模块 3.编写文件名,记住如果想单独一个项目,不想被包括在其他项目里面就取消位置后面的地址,它有可能是上一个项目的主文件 4.创建完主要项目以后要添加web模块,先选中需要添加web项目的模块,再店家上方+号,选择 web模块 3.修改部......
  • .NET周报 【4月第5期 2023-04-30】
    国内文章基于Github平台的.NET开源项目模板.嘎嘎实用!https://www.cnblogs.com/NMSLanX/p/17326728.html大家好,为了使开源项目的维护和管理更方便一些,出于个人需求写了一款开源项目的模板,该模板基于Github平台,并使用.NET来实现管道功能.在接受过实战检验后,于今......
  • 美团面经总结(2023最新)
    分享一份读者面试美团的面经,比较有参考性,感兴趣的可以看看~一面消息队列如何保证可靠性消息队列如何保证消息幂等性消息队列的优缺点为什么用b+树聚集索引和主键区别,其他引擎怎么做的平时数据库编码explain参数http报文参数有哪些吗?做题,链表奇偶有序输出二面自我介......
  • 2023.5.7——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习并开会。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......
  • 2023.18 星火认知大模型
    5月6日,科大讯飞正式发布星火认知大模型,宣布对外开放测试,并发布教育、办公、汽车、数字员工四大行业应用成果。星火大模型在通用能力上支持:多风格多任务长文本生成、多层次跨语种语言理解,泛领域开放式知识问答,情景式思维链逻辑推理,多题型可解析数学能力,多功能多语言代码能力。发布......
  • 2023.5.7
    1//11-62#include<iostream>3#include<fstream>4#include<string>5usingnamespacestd;6classDog7{8public:9Dog(){}10Dog(intage,intwei)11{12this->m_Age=age;13this->m_W......
  • 2023.5.6 《动手学深度学习》第3、4章
    今天继续学习《动手学习深度学习》第5章:深度学习计算、第6章:卷积神经网络,今天学到的内容主要有这两章的概念。以及实现LeNet对FashionMNIST进行分类。一、理论部分:1、概念解释:1×1卷积的作用:卷积通常用于识别相邻元素间相互作用的能力,但1×1卷积不具备该能力,其主要用于调整输......