首页 > 编程语言 >武汉大学2023年新生程序设计竞赛

武汉大学2023年新生程序设计竞赛

时间:2023-10-17 15:12:12浏览次数:39  
标签:武汉大学 int32 ch int res 2023 long using 程序设计

A-教科书般的亵渎

#include <bits/stdc++.h>

using namespace std;

#define int long long

using vi = vector<int>;
using pii = pair<int, int>;
using i32 = int32_t;

int32_t main() {
    int n;
    cin >> n;
    vi a(n);
    for (auto &i: a) cin >> i;
    sort(a.begin(), a.end());
    a.resize(unique(a.begin(), a.end()) - a.begin());
    if( a.front() != 1 ){
        cout << "NO\n";
        return 0;
    }
    for( int i = 1 ; i < a.size() ; i ++ ){
        if( a[i] != a[i-1] + 1 ){
            cout << "NO\n";
            return 0;
        }
    }
    cout << "YES\n";
    return 0;
}

C-覆叶之交

容斥原理

#include <bits/stdc++.h>

using namespace std;

#define int long long

using vi = vector<int>;
using pii = pair<int, int>;
using i32 = int32_t;
using i64 = long long;
using i128 = __int128;

int res = 0;

using node = array<i128, 4>;


int area(const node &x) {
    return max(x[2] - x[0], (i128) 0) * max(x[3] - x[1], (i128) 0);
}

int read() {
    int x = 0, f = 1, ch = getchar();
    while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
    if (ch == '-') f = -1, ch = getchar();
    while (ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
    return x * f;
}

node operator&(const node &x, const node &y) {
    node z;
    z[0] = max(x[0], y[0]);
    z[1] = max(x[1], y[1]);
    z[2] = min(x[2], y[2]);
    z[3] = min(x[3], y[3]);
    return z;
}

int32_t main() {
    vector<node> p(3);
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) p[i][j] = read();
        if (p[i][0] > p[i][2]) swap(p[i][0], p[i][2]);
        if (p[i][1] > p[i][3]) swap(p[i][1], p[i][3]);
    }
    i128 res = 0;
    res = area(p[0]) + area(p[1]) + area(p[2]);
    res -= area(p[0] & p[1]);
    res -= area(p[0] & p[2]);
    res -= area(p[1] & p[2]);
    res += area(p[0] & p[1] & p[2]);
    cout << (i64) res << "\n";
    return 0;
}

E-不是n皇后问题

直接按顺序放置

#include <bits/stdc++.h>

using namespace std;

#define int long long

using vi = vector<int>;
using pii = pair<int, int>;
using i32 = int32_t;


int32_t main() {
    int n ;
    cin >> n;
    for( int i = 0 ; i < n ; i ++ ){
        for( int j = 1 ; j <= n ; j ++ )
            cout << i * n + j << " ";
        cout << "\n";
    }
    return 0;
}

J-放棋子

对于一维来说,按照顺序放置最优,同理可以类推到二维,对于贡献,我们用前缀和维护一下即可

#include <bits/stdc++.h>

using namespace std;

using vi = vector<int>;

int32_t main() {
    ios::sync_with_stdio(false), cin.tie(nullptr);
    int n, m, res = 0;
    cin >> n >> m;
    vi cnt(m, 0);
    for (int i = 0; i < n; i++) {
        string s;
        cin >> s;
        for (int j = 0, pre = 0; j < m; j++) {
            if (s[j] == '#') {
                pre++, cnt[j]++;
                res += pre * pre + cnt[j] * cnt[j];
            } else pre = cnt[j] = 0;
        }
    }
    cout << res << "\n";
    return 0;
}

K-矩形分割

每次按照短边尽可能的切分就好了

#include <bits/stdc++.h>

using namespace std;

#define int long long

using vi = vector<int>;
using pii = pair<int, int>;
using i32 = int32_t;

int res = 0;

void dfs(int x, int y) {
    if (x > y) swap(x, y);
    if( x == 0 ) return ;
    int t = y / x;
    res += t * x;
    dfs(x, y % x);
    return ;
}

int32_t main() {
    int n, m;
    cin >> n >> m;
    dfs(n, m);
    cout << res << "\n";
    return 0;
}

L-小镜的数学题

要想使得每一位都为零,则至少要让每一位都至少有一个零,所以最高为零一定要使得最高位发生一次进位

#include <bits/stdc++.h>

using namespace std;

#define int long long

using vi = vector<int>;
using pii = pair<int, int>;
using i32 = int32_t;


int32_t main() {
    int n , cnt = 0;
    cin >> n;
    while( n ) cnt ++ , n >>= 1;
    cout << (1ll << cnt) << "\n";
    return 0;
}

标签:武汉大学,int32,ch,int,res,2023,long,using,程序设计
From: https://www.cnblogs.com/PHarr/p/17769742.html

相关文章

  • 2023noip赛前20天冲刺 Day6 复活赛
    回来吧牢大\sad小时候看这集复活赛打赢了。(100+100+10+15)回来吧刺激战场我最骄傲的信仰历历彩目的G港眼泪莫名在流淌你是记得98K还有给力的装备把敌人都给打退就算通宵也不累A.嗯鸥哀劈(noip)B.讴不死塔扣(obstacle)C.钙绿(probability)D.锐特(rate)......
  • NOIP2023-div2模拟赛20 D. 数星星
    妙妙+经典题。难度:Hard。题意给定一棵\(n\)个结点的树,点有点权。树上有一些简单路径,编号分别为\(1,2,\cdots,m\)。有\(q\)次询问,每次询问查询编号在\([l,r]\)中的路径的并的点权和。题解考虑一个经典题:定一个数列,每次询问一个区间不同元素的和。这个问题是简单的,你......
  • 2023香山杯nesting详解
    nesting通过函数分析,有一个VM的指令解析器,也看不懂,VM的题看起来特别费劲在sub_16BC里面找cmp的flag比对指令,0x1E21和0x1EC9。最终发现输入正确的字符和错误的字符,0x1E21处的指令执行次数不一样,可以通过输入fo,fl,fi,其中fl是正确的字符,发现正确的字符在0x1E21处执行的次数更多,因......
  • 博睿数据获评2023中国智能运维领域“最具商业合作价值企业”
    博睿数据成功入选由数据猿携手上海大数据联盟共同推出的《2023中国智能运维领域最具商业合作价值企业盘点》。作为中国IT运维监控及可观测性领域的领导者,博睿数据凭借前瞻的产品技术布局、市场影响力以及领先的智能运维技术,获得了评审的一致认可,成功获评“最具商业合作价值企业”。......
  • PRCV 2023:语言模型与视觉生态如何协同?合合信息瞄准“多模态”技术
    PRCV2023:语言模型与视觉生态如何协同?合合信息瞄准“多模态”技术近期,2023年中国模式识别与计算机视觉大会(PRCV)在厦门成功举行。大会由中国计算机学会(CCF)、中国自动化学会(CAA)、中国图象图形学学会(CSIG)和中国人工智能学会(CAAI)联合主办,多媒体可信感知与高效计算教育部重点实验室、......
  • 【2023潇湘夜雨】WIN11_Pro_Dev_23565.1000软件选装纯净版10.16
    【系统简介】=============================================================1.本次更新母盘来自WIN11_Pro_Dev_23565.1000。2.增加部分优化方案,手工精简部分较多。3.OS版本号为23565.1000。精简系统只是为部分用户安装,个别要求高的去MSDN下。4.集成《DrvCeo-2.13.0.8》网卡版、运......
  • 2023年CSPM-3国标项目管理中级认证含金量及报名指南
    CSPM-3中级项目管理专业人员评价,是中国标准化协会(全国项目管理标准化技术委员会秘书处),面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才职业能力评价和激励机制的要求,培养我国项目管理领域复合型人才。  【证书含金量】 ·竞聘优先......
  • 2023年10月DAMA-CDGP数据治理专家认证报名来这
    DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业竞争能力。DAMA是数据管理方面的认证,帮助数据从业者提升......
  • 2023年惠州/深圳CPDA数据分析师认证含金量及报名流程
    CPDA数据分析师认证是大数据方面的认证,助力数据分析人员打下扎实的数据分析基础知识功底,为入门数据分析保驾护航。帮助数据分析人员掌握系统化的数据分析思维和方法论,提升工作效率和决策能力,遇到问题能够举一反三,为大部分决策难题提供解决方案。帮助数据分析人员掌握几种通用的数据......
  • 「解题报告」2023-10-17 模拟赛
    1、取石子游戏(nim.pas/c/cpp)【题目描述】小林和亮亮正在玩一个取石子的游戏。石子一共有\(n\)堆,其中第\(i\)堆恰好有\(i\)粒石子。小林先取,亮亮后取,并且两人依次轮流取石。每一次取石子的人可以选择任意一堆还未被取完的石子,并取走这一堆中任意多粒石子(注意,不能一粒石......