第 33 次CCF认证

news2024/12/23 10:49:47

1. 词频统计

题目描述#

样例输入

在这里插入图片描述

代码

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n,m;cin>>n>>m;
    vector<int> ans1(m,0),ans2(m,0);
    while (n --) {
        int t;cin>>t;
        vector<int> vis(m+1,0);
        for (int i = 1;i <= t;i ++) {
            int x;cin>>x;
            vis[x] ++;
        }
        for (int i = 0;i < m;i ++) {
            if (vis[i+1]) {
                ans1[i] ++;
            }
            ans2[i] += vis[i+1];
        }
    }
    for (int i = 0;i < m;i ++) {
        cout<<ans1[i]<<" "<<ans2[i]<<endl;
    }
}

2. 相似度计算

题目描述

在这里插入图片描述

样例输入

在这里插入图片描述

代码

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n,m;
    cin>>n>>m;
    vector<string> s1(n),s2(m);
    string s;
    set<string> ans2;map<string,int> ans1;
    for (int i = 0;i < n;i ++) {
        cin>>s;
        for (int j = 0;j < s.size();j ++) {
            if (s[j] >= 'A'&&s[j] <= 'Z') {
                s[j] = s[j] - 'A' + 'a';
            }
        }
        s1[i] = s;
        ans2.insert(s);
        //cout<<s<<endl;
        if (ans1.find(s1[i])==ans1.end())
        ans1[s1[i]] = 1;
        // cout<<s1[i]<<endl;
    }
    int answer1 = 0;
    for (int i = 0;i < m;i ++) {
        cin>>s;
        for (int j = 0;j < s.size();j ++) {
            if (s[j] >= 'A'&& s[j] <= 'Z') {
                s[j] = s[j] - 'A' + 'a';
            }
        }
        s2[i] = s;
        //cout<<s<<endl;
        ans2.insert(s);
        if (ans1.find(s2[i])!=ans1.end()) {
            answer1++;
            //cout<<ans1.size()<<endl;
            ans1.erase(s2[i]);
            //cout<<ans1.size()<<endl;
        }
    }
    cout<<answer1<<endl<<ans2.size()<<endl;
}

3. 化学方程式配平

题目描述

在这里插入图片描述
在这里插入图片描述

样例输入

在这里插入图片描述

代码


#include <bits/stdc++.h>

using namespace std;
double a[105][105];
const double eps = 1e-8;
int huajian2(int n,int m)//亦或矩阵的化简  
{
    int row = 1;
	for (int i = 1;i <= m;i ++) {
        bool flag = 0;
        for (int j = row;j <= n;j ++) {
            if (fabs(a[j][i]) > eps) flag = 1;
        } 
        if (!flag) continue;
        if (fabs(a[row][i])<eps) {
            for (int j = row + 1;j <= n;j ++) {
                if (a[j][i]) {
                    for (int k = i;k <= m;k ++) 
                        swap(a[row][k],a[j][k]);
                    break;
                }
            }
        }
        
        for (int j = row+1;j <= n;j ++) {
            for (int k = i+1;k <= m;k ++) {
                a[j][k] -= a[row][k]*(a[j][i]/a[row][i]);
            }
            a[j][i] = 0;
        }   
        row ++;
    }
    int cnt = 0;
    for (int i = 1;i <= n;i ++) {
        bool flag = 0;
        for (int j = 1;j <= m; j++ )
            if (fabs(a[i][j])>eps) flag = 1;
        if (flag) cnt ++;
    }
    return cnt;
}
double to_int(string s) 
{
    double x = 0;
    for (int i = 0;i < s.size();i ++) {
        x=x*10+s[i]-'0';
    }
    return x*1.0;
}
void solve()
{
    int t;cin>>t;
    int c_cnt  = 0; 
    map<string,int> s_sum;
    for (int i = 1;i <=100;i ++ ) {
        for (int j = 1;j <= 100;j ++) a[i][j] = 0*1.0;
    }
    for (int i = 1;i <= t;i ++) {
        string s;cin>>s;
        string t_s = "",int_s = "";

        vector<double> i1;vector<string> s1;
        for (int j = 0;j < s.size();j ++)
        {
            if (s[j] >= 'a' && s[j] <= 'z') {
                t_s += s[j];
            } else {
                if (t_s!="")
                    s1.push_back(t_s);
                if (s_sum.find(t_s) == s_sum.end()) 
                    s_sum[t_s] = ++ c_cnt;
                t_s = "";
            } 
        }
        int_s = "";
        for (int j = 0;j < s.size();j ++) {
            if (isdigit(s[j])) {
                int_s += s[j];
            } else {
                if (int_s!="")
                    i1.push_back(to_int(int_s));
                int_s = "";
            }
        }
        i1.push_back(to_int(int_s));
        int_s = "";
        
        for (int j = 0;j < s1.size();j ++) {
            a[s_sum[s1[j]]][i] = i1[j];
        }
    }
    
    int ans = huajian2(c_cnt,t);
    if (ans < t) cout<<"Y"<<endl;
    else cout<<"N"<<endl;
}

int main()
{
    // if (eps>0)
    // cout<<eps<<endl;
    int n;cin>>n;
    while (n --) {
        solve();
    }
}

4. 十滴水

题目描述

在这里插入图片描述

输入格式及样例输入

在这里插入图片描述

代码

#include <bits/stdc++.h>

using namespace std;

int main() 
{
    int c,m,n;
    cin>>c>>m>>n;
    map<int,int> water;
    set<int> w_arr;
    for (int i = 1;i <= m;i ++) {
        int x,w;cin>>x>>w;
        w_arr.insert(x);
        water[x] = w;
    }
    set<int> five_s;
    while (n --) {
        int p;cin>>p;
        water[p] ++;
        
        if (water[p] >= 5) {
            five_s.insert(p);
        }
        // for (auto x:five_s) {
        //     cout<<x<<" :  ";
        // }cout<<endl;
        // for (auto x:w_arr) {
        //     cout<<x<<" ::  ";
        // }cout<<endl;
        while (int(five_s.size())!=0) {
            int xx = *(five_s).begin();
            set<int>::iterator iter = w_arr.find(xx);
            if(w_arr.size() == 1) {
                w_arr.erase(xx);break;
            }
            iter++;
            if ( iter != w_arr.end()) {
                // iter++;
                int xx = *(iter);
                water[xx] ++;
                if (water[xx] >= 5)  {
                    five_s.insert(xx);
                    // vis[xx] = 1;
                } 
            }
            iter  = w_arr.find(xx);
            
            if (iter != w_arr.begin()){
                iter--;
                int xx = *iter;
                water[xx] ++;
                // cout<<xx<<":"<<i<<endl;
                if (water[xx] >= 5)  {
                    five_s.insert(xx);
                    // vis[xx] = 1;
                } 
            }
            five_s.erase(five_s.find(xx));
            w_arr.erase(w_arr.find(xx));
            water.erase(water.find(xx));
        }
        // for (auto x:w_arr) {
        //     cout<<x<<" :  "<<water[x]<<"!!!";
        // }cout<<endl;
        cout<<w_arr.size()<<endl;
    }
}

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

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

相关文章

这样的直男程序员,活该你单身一万年!

#分享下相亲时遇到过哪些奇葩现象# 这样的直男程序员&#xff0c;活该你单身一万年&#xff01; 在丛丛脱单小程序上相亲&#xff0c;遇到一个程序员妹纸&#xff0c;于是有了如下的真实故事&#xff1a; 妹子说她是程序员来着&#xff0c;想着我也是程序员&#xff0c;就想交…

【HMGD】STM32/GD32 CAN通信

各种通信协议速度分析 协议最高速度(btis/s)I2C400KCAN1MCAN-FD5M48510MSPI36M CAN协议图和通信帧 CubeMX CAN配置说明 CAN通信波特率 APB1频率 / 分频系数 /&#xff08;BS1 BS2 同步通信段&#xff09;* 1000 ​ 42 / 1 / (111) * 1000 ​ 14,000 KHz ​ 1400000…

1.4 Mac 电脑 Clion 安装教程

目录 1 安装 2 激活 3 汉化 1 安装 去 https://www.jetbrains.com/clion/download/other.html 下载: 也可以直接到链接进行下载:https

DOS学习-目录与文件应用操作经典案例-comp

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 案例 1: 基本比较 案例 2: 十进制显示差异 案例 3: 字符形式显…

1-Django开端--学生管理系统

目录 项目结构 前端页面: add_data.html class_data.html index.html apps.py models.py views.py settings,py urls.py ...实现简略的身架... 项目结构 前端页面: add_data.html --添加数据. {% extends index/index.html %}{% block content %} <div class&qu…

基于机器学习的一线城市租房价格预测分析与实现,实现三种算法预测

本文旨在基于机器学习方法&#xff0c;对一线城市租房价格进行预测分析&#xff0c;并使用Matplotlib可视化、随机森林、一元线性回归和多元线性模型进行模型对比。通过爬取北京链家二手房数据作为研究对象&#xff0c;探讨了租房价格与各种因素之间的关系&#xff0c;阐述了研…

实时计算及异构计算随笔笔记

3、异构计算的典型应用 异构计算并不神秘&#xff0c;目前已渗透各个领域&#xff0c;不仅是PC领域&#xff0c;也包括了手持移动设备领域、行业领域&#xff0c;甚至是云计算、分布式计算领域。事实上&#xff0c;异构计算至少在应用端&#xff08;前台&#xff09;并不像它的…

【java程序设计期末复习】chapter4 类和对象

类和对象 编程语言的几个发展阶段 &#xff08;1&#xff09;面向机器语言 计算机处理信息的早期语言是所谓的机器语言&#xff0c;使用机器语言进行程序设计需要面向机器来编写代码&#xff0c;即需要针对不同的机器编写诸如0101 1100这样的指令序列。 &#xff08;2&#x…

【XSS CSRF 】访问时篡改密码——以DVWA-High为例

【XSS & CSRF 】泄露cookie——以DVWA-High为例-CSDN博客第一阶段 目录 前言 一、场景想定 二、过程步骤 1.High等级下的CSRF利用 2.XSSCSRF实现页面访问后密码被修改 三、最终利用——cookie可变下的admin密码修改 1.cookie可变 2.利用过程 总结 前言 第二阶段…

编写子函数+最大公约数和最小公倍数

目录 计算级数和 判断并找出非素数 主函数操作流程 求最大公约数和最小公倍数 编写子函数&#xff0c;该函数的功能是是计算下列级数和&#xff0c;并将和值返回主调函数输出。数据由主函数输入。 fun 函数 sum 函数 main 函数 注意事项 编写函数&#xff0c;该函数的…

C语言——malloc和free用法和常见误区

最近写了个关于动态数组的代码&#xff0c;遇到了一个大坑&#xff0c;特此记录 先说结论&#xff1a; 1.利用malloc创建堆空间&#xff0c;大小最好设置大一点&#xff0c;不然后面存进去的值需要的空间过大会导致各种的堆、指针问题 2.只能使用realloc对已经创建的空间进行修…

自定义类型:结构体详解

1.结构体 1.1 结构的基础知识 结构是一些值的集合&#xff0c;这些值称为成员变量。一个整型数组&#xff0c;它的每个数组元素只能是整型&#xff0c;字符型的数组它的每个元素只能是字符型。但是结构体的每个成员可以是各种不同类型的变量。 1.2结构的声明 //声明 struct t…

视频拼接融合产品的产品与架构设计(四)分布式GPU运算合并单元

上一篇如下 视频拼接融合产品的产品与架构设计(三&#xff09;内存和显存单元数据迁移 视频合并单元说明 对下面这张图做些说明&#xff0c;视频接入是比较常见&#xff0c;可以说是普通&#xff0c;但是做到接入后随即进行比较重的算法运算&#xff0c;这个在视频领域并不多…

海外抖音TK自动挂机,手机全自动挂机,每天轻松搞2张

海外抖音TK自动挂机&#xff0c;手机全自动挂机&#xff0c;每天轻松搞2张 课程获取方式&#xff1a; https://zzmbk.com/

linux系统部署Oracle11g:netca成功启动后1521端口未能启动问题

一、问题描述 执行netca命令&#xff0c;进入图形化界面&#xff0c;进行Oracle端口监听设置 #终端输入命令 netca 最终提示设置成功&#xff1a; 但是我们进行下一步“创建数据库”的时候会报错&#xff0c;说数据库端口1521未开启&#xff01; 二、问题处理 使用命令查看开…

ubuntu安装samba实现共享文件windows可查看ubuntu中的文件

samba的作用&#xff1a;实现共享linux/ubuntu系统中的文件&#xff0c;在windows直接查看操作ubuntu/linux中的文件、文件夹 1、安装samba sudo apt-get install samba如果不能安装samba&#xff0c;则更新apt-get sudo apt-get upgrade sudo apt-get update sudo apt-get d…

数据库攻防之MySQL

MySQL 是最流行的关系型数据库&#xff0c;与此同时也是 web 应用中最好的关系型数据库管理应用软件。我们在渗透过程中碰到的 PHP 站点大部分都会搭配 MySQL 数据库&#xff0c;因此它是红队攻防中最常遇到的数据库。 0x01 MySQL简介 MySQL 是典型的关系型数据库&#xff0c;…

Go 1.23 Release Notes编写方式改进!

2024.5.22日&#xff0c;Go 1.23 feature冻结&#xff01;Go团队开始Go 1.23rc1的冲刺&#xff0c;截至发文时&#xff0c;Go 1.23 milestone已经完成59%(https://github.com/golang/go/milestone/212)&#xff0c;还有188个open的issue待解决。 Go 1.23有哪些新feature&#x…

【java程序设计期末复习】chapter1 java入门

java入门 java的特点 &#xff08;1&#xff09;简单 Java要比C简单&#xff0c;C中许多容易混淆的概念&#xff0c;或者被Java弃之不用了&#xff0c;或者以一种更清楚更容易理解的方式实现 &#xff08;2&#xff09;面向对象 Java是面向对象的编程语言 &#xff08;3&…

[Vulnhub]Vulnix 通过NFS挂载+SSH公钥免密登录权限提升

端口扫描 Server IP AddressPorts Open192.168.8.103TCP:22/tcp, 25/tcp, 79/tcp, 110/tcp, 111/tcp, 143/tcp, 512/tcp, 513/tcp, 514/tcp, 993/tcp, 995/tcp, 2049/tcp, 37522/tcp, 42172/tcp, 43219/tcp, 47279/tcp, 54227/tcp $ nmap -p- 192.168.8.103 -sV -sC --min-ra…