首页 > 其他分享 >2024 信友队 CSP-J 第二轮(复赛)模拟赛

2024 信友队 CSP-J 第二轮(复赛)模拟赛

时间:2024-10-22 18:14:27浏览次数:4  
标签:cnt int rev 2024 vec0 vec1 友队 CSP size

A 火柴

#include <cstdio>
int cnt[10] = {0, 1, 2, 3, 3, 2, 3, 4, 5, 3};
char num[10][10] = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
int main()
{
    freopen("match.in", "r", stdin);
    freopen("match.out", "w", stdout);
    int n; scanf("%d", &n);
    int ans = 0;
    for (int i = 1; i <= 39; i++) {
        int x = i / 10, y = i % 10;
        if (x * 2 + cnt[y] == n) ans++;
    }
    printf("%d\n", ans);
    for (int i = 1; i <= 39; i++) {
        int x = i / 10, y = i % 10;
        if (x * 2 + cnt[y] == n) {
            for (int j = 1; j <= x; j++) printf("X");
            printf("%s\n", num[y]);
        }
    }
    return 0;
}

B 失误

#include <cstdio>
#include <algorithm>
using std::min;
using std::max;
using ll = long long;
const int N = 100005;
const ll INF = 1e18;
ll a[N], pre[N], suf[N];
int main()
{
    freopen("mistake.in", "r", stdin);
    freopen("mistake.out", "w", stdout);
    int n; scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        scanf("%lld", &a[i]);
        pre[i] = pre[i - 1] ^ a[i];
    }
    for (int i = n; i >= 1; i--) {
        suf[i] = suf[i + 1] ^ a[i];
    }
    ll ans_min = INF, ans_max = 0;
    for (int i = 2; i <= n; i++) {
        ll cur = (pre[i - 1] + a[i]) ^ suf[i + 1];
        ans_min = min(ans_min, cur);
        ans_max = max(ans_max, cur);
    }
    printf("%lld %lld\n", ans_min, ans_max);
    return 0;
}

D 投票

#include <cstdio>
#include <vector>
#include <algorithm>
using std::vector;
using std::sort;
using ll = long long; 
const int N = 100005;
vector<int> tree[N];
int p[N], a[N], op[N], b[N];
ll ans[N], rev[N];
void dfs(int u) {
    vector<int> vec1, vec0;
    for (int v : tree[u]) {
        dfs(v);
        if (op[v]) vec1.push_back(v);
        else vec0.push_back(v);
    }

    if (vec1.size() == vec0.size()) {
        ans[u] = 0; op[u] = a[u];
    } else if (vec1.size() > vec0.size()) {
        op[u] = 1;
        int cnt = (vec1.size() - vec0.size()) / 2;
        sort(vec1.begin(), vec1.end(), [](int lhs, int rhs) {
            return rev[lhs] < rev[rhs];
        }); 
        for (int i = 0; i < cnt; i++) ans[u] += rev[vec1[i]];
    } else {
        op[u] = 0;
        int cnt = (vec0.size() - vec1.size()) / 2;
        sort(vec0.begin(), vec0.end(), [](int lhs, int rhs) {
            return rev[lhs] < rev[rhs];
        });
        for (int i = 0; i < cnt; i++) ans[u] += rev[vec0[i]];
    }

    if (a[u]) vec1.push_back(u);
    else vec0.push_back(u);
    rev[u] = b[u];
    ll tmp = 0;
    if (vec1.size() > vec0.size()) {
        int cnt = (vec1.size() - vec0.size() + 1) / 2;
        sort(vec1.begin(), vec1.end(), [](int lhs, int rhs) {
            return rev[lhs] < rev[rhs];
        });
        for (int i = 0; i < cnt; i++) tmp += rev[vec1[i]];
    } else {
        int cnt = (vec0.size() - vec1.size() + 1) / 2;
        sort(vec0.begin(), vec0.end(), [](int lhs, int rhs) {
            return rev[lhs] < rev[rhs];
        });
        for (int i = 0; i < cnt; i++) tmp += rev[vec0[i]];
    }
    rev[u] = tmp;
    
}
int main()
{

    freopen("vote.in", "r", stdin);
    freopen("vote.out", "w", stdout);

    int n; scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        scanf("%d%d%d", &p[i], &a[i], &b[i]);
        tree[p[i]].push_back(i);
    }
    dfs(1);
    for (int i = 1; i <= n; i++) {
        printf("%lld\n", ans[i]);
    }
    return 0;
}

标签:cnt,int,rev,2024,vec0,vec1,友队,CSP,size
From: https://www.cnblogs.com/ronchen/p/18493440

相关文章

  • 『模拟赛』多校A层冲刺NOIP2024模拟赛11
    Rank考前不挂就是赢A.冒泡排序签,简单的有点格格不入。发现错误代码实质上是将原序列划分成了若干个连通块,并对每个连通块做一遍排序。并查集维护,\(\mathcal{O(n)}\)扫一遍合并连通块,然后按顺序输出即可。复杂度最坏\(\mathcal{O(n\logn)}\)。点击查看代码#include<b......
  • 20222426 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实验内容·免杀原理免杀技术的核心原理是通过修改病毒、木马的内容,改变其特征码,从而躲避杀毒软件的查杀。杀毒软件通常使用特征码识别技术来检测和清除恶意软件,因此,通过修改恶意软件的特征码,可以使其绕过杀毒软件的检测。·免杀技术1.修改特征码。·直接修改:将特征码所对应......
  • 第九届清洁能源与发电技术国际学术会议(CEPGT 2024)
    第九届清洁能源与发电技术国际学术会议(CEPGT2024)20249th InternationalConferenceonCleanEnergyandPowerGenerationTechnology(CEPGT2024)【早投稿早录用,享受早鸟优惠】CEPGT2024会议已上线至IEEE官网第九届清洁能源与发电技术国际学术会议(CEPGT2024),将于202......
  • 2024MOECTF Crypto Week1
    感觉西电的题都挺好,对我这个小白来说还是挺有收获的,知识点比较广泛灵活,还是要多做题啊,看书看得昏昏欲睡还不知道到底学了能干嘛(捂脸)1.现代密码学入门指北打开文件得到RSA加密脚本:fromCrypto.Util.numberimportbytes_to_long,getPrimefromsecretimportflagp=getP......
  • 20222321 2024-2025-1 《网络与系统攻防技术》实验二实验报告
    一.实验内容(1)使用netcat获取主机操作Shell,cron启动某项任务(任务自定)(2)使用socat获取主机操作Shell,任务计划启动(3)使用MSFmeterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(4)使用MSFmeterpreter(或其他软件)生成获取目标主机音频、摄......
  • 20241021 校测T1 致敬传奇捆绑测试题目(Perm) 题解
    题解:致敬传奇捆绑测试题目Perm来自不知道什么时候的回忆。给定正整数\(n\),一个\(1\simn\)的排列\(p\)是一个好排列,当且仅当使得对于任意\(1\lek<n\),都有\(\sum_{i=1}^kp_i>p_{k+1}\)。现在请你求出字典序第小的好排列\(p\)。\(1\len\le10^6\),\(1\lek\le......
  • Adobe LRC2024图像编辑软件下载安装
    目录软件简介系统要求Windows系统macOS系统安装步骤Windows系统1.运行安装程序2.完成安装与配置macOS系统1.运行安装程序2.完成安装与配置使用功能软件简介AdobeLightroomClassic(简称LRC)是一款专业的桌面图像编辑和管理软件,专为数码摄影师、图形......
  • 20222406 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    202224062024-2025-1《网络与系统攻防技术》实验三实验报告1.实验内容1.1实践内容正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧通过组合应用各种技术实现恶意代码免杀用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本......
  • 多校A层冲刺NOIP2024模拟赛11
    多校A层冲刺NOIP2024模拟赛11\(T1\)A.冒泡排序\(100pts/100pts/100pts\)将循环\(j\)提到外面,本质上是对\(a_{j},a_{j+k},a_{j+2k},\dots,a_{j+xk}\)进行排序迭代的过程。按下标模\(k\)的余数分别排序即可。点击查看代码inta[1000010];vector<int>b[1000......
  • 20222427 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实践内容1.1本周知识总结深入学习关于缓冲区溢出的基础知识。学习了关于后门的一些基础知识。1.2回答问题(1)杀软是如何检测出恶意代码的?病毒特征码检测加密文件分析基于行为检测的主动防御病毒云查杀(2)免杀是做什么?免杀,即Anti-AntiVirus(简写VirusAV......