第 33 次CCF认证

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;
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Qt】深入探索Qt窗口与对话框:从创建到管理:QDockWidget(浮动窗口)、QDialog(对话框)

文章目录 前言&#xff1a;1. 浮动窗口2. 对话框介绍2.1. 示例&#xff1a;主窗口中&#xff0c;通过点击按钮&#xff0c;弹出一个新的对话框。2.2. 创建自定义对话框2.2.1. 纯代码的方式2.2.2. 图形化界面的方式 3. 模态对话框 和 非模态对话框4. Qt 内置对话框4.1. 消息对话…

创新实训2024.05.26日志:落地基于硬盘的数据库服务

1. 需求任务列表 以下描述易学大模型软件的web应用的功能。 用户注册 用户邮箱&#xff0c;密码&#xff0c;验证码开启官方邮箱&#xff0c;用来发验证码&#xff08;QQ 网易都支持开启smtp协议&#xff0c;找教程&#xff0c;用邮箱不用手机号是为了省买发短信云服务的钱&a…

【软件设计师】先导

一、考试科目&#xff1a; 上午&#xff1a;计算机与软件工程知识&#xff0c;考试时间150min&#xff0c;75空单选题&#xff08;不一定一题一空&#xff09; 下午&#xff1a;软件设计&#xff0c;考试时间150分钟&#xff0c;问答题&#xff0c;6道只做5大题&#xff08;前四…

Nginx 的原理解析 worker 配置及相关问题 -细节狂魔

文章目录 前言Nginx 的最基本的执行过程&#xff08;master & worker&#xff09;worker 是如何进行工作的 一个 master 和 多个 woker 有哪些好处1、可以使用 nginx 热部署2、节省资源 && worker 进程之间互不影响 && nginx 服务不会中断 woker 设置多少才…

简单美观易上手的 Docker Compose 可视化管理器 Dockge

本文首发于只抄博客&#xff0c;欢迎点击原文链接了解更多内容。 前言 Dockge 是 Uptime Kuma 作者的新作品&#xff0c;因此 UI 风格与 Uptime Kuma 基本一致&#xff0c;如果你正在使用 Uptime Kuma 的话&#xff0c;那么 Dockge 的 UI 设计应该也不会让你失望。Dockge 主打…

java人口老龄化社区服务与管理平台源码(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的人口老龄化社区服务与管理平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 人口老龄化…

MySql基础(一)--最详细基础入门,看完就懂啦(辛苦整理,想要宝宝的赞和关注嘻嘻)

前言 希望你向太阳一样&#xff0c;有起有落&#xff0c;不失光彩~ 一、数据库概述 1. 什么是数据库 数据库就是存储数据的仓库&#xff0c;其本质是一个文件系统&#xff0c;数据按照特定的格式将数据存储起来&#xff0c;用户可以对数据库中的数据进行增加&#xff0c;修改&…

Spring中的Aware接口

Spring中的Aware接口 Aware接口介绍 Aware是Spring中的接口&#xff0c;它的作用是可以让Bean获取到运行环境的相关信息。比如获取到上下文、Bean在容器中的名称等。 Spring中提供了很多Aware接口的子类&#xff0c;具体如下&#xff1a; 常用接口的作用如下&#xff1a; …

制作电子画册速成攻略,快来试试

​当今社会&#xff0c;数字媒体日益普及&#xff0c;电子画册作为一种崭新的展示方式&#xff0c;受到了越来越多人的青睐。它不仅形式新颖&#xff0c;互动性强&#xff0c;而且制作起来也并不复杂。想知道如何快速掌握制作电子画册的技巧吗&#xff1f;我来教你吧。 接下来&…

YOLO 学习和使用 (重拾机器学习)

contents a nenrons 单层神经网络 多层神经网络 CNN (Convolutional Neural Network) YOLO 5.1. YOLO(you only look once) 5.2. predict stage: 置信度 * 类别条件概率 全概率非极大值抑制&#xff0c;通过IOU 指数进行实现每个 grid cell 生成两个预测 bounding box 无…

呆马科技----构建智能可信的踏勘云平台

近年来&#xff0c;随着信息技术的快速发展&#xff0c;各个行业都在积极探索信息化的路径&#xff0c;以提升工作效率和服务质量。智慧踏勘云平台是基于区块链和大数据技术构建的全流程智慧可信踏勘解决平台。平台集远程视频、数据显示、工作调度、过程记录为一体&#xff0c;…

【图解IO与Netty系列】IO多路复用

IO多路复用 为什么要使用IO多路复用Linux的IO多路复用接口selectpollepoll 为什么要使用IO多路复用 我们常用的IO模型是BIO&#xff0c;我们Java里的IO流大多数都是BIO&#xff0c;也就是同步阻塞式IO&#xff0c;这种IO操作的好处是简单方便&#xff0c;但是缺点也很明显——…

【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【00】补充

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【00】补充 WindowsCMD插件IDEAVsCode MavenvagrantDocker解决MySQL连接慢问题启动&#xff08;自动&#xff09;Docker注意切换到root用户远程访问MySQL MyBatisPlus代码地址参考 WindowsC…

vs2013使用qt Linguist以及tr不生效问题

一、qt Linguist&#xff08;语言家&#xff09;步骤流程 1、创建翻译文件,在qt选项中 2.选择对应所需的语言&#xff0c;得到.ts后缀的翻译文件 3.创建.pro文件&#xff0c;并将.ts配置在.pro文件中 3.使用qt Linguist 打开创建好的以.ts为后缀的翻译文件&#xff0c;按图所示…

YOLOv10 | 手把手教你利用yolov10训练自己数据集(含环境搭建 + 参数解析 + 数据集查找 + 模型训练、推理、导出)

一、前言 本文内含YOLOv10网络结构图 各个创新模块手撕结构图 训练教程 推理教程 参数解析 环境搭建 数据集获取等一些有关YOLOv10的内容&#xff01; 目录 一、 前言 二、整体网络结构图 三、空间-通道分离下采样 3.1 SCDown介绍 3.2 C2fUIB介绍 3.3 PSA介绍 …

Java核心: 脚本引擎和动态编译

静态语言和动态语言的在相互吸收对方的优秀特性&#xff0c;取人之长补己之短。脚本引擎和动态编译就是其中一个关键特性&#xff0c;扩展了Java的能力边界。这一篇我们主要讲两个东西: ScriptEngine&#xff0c;执行脚本语言代码&#xff0c;如JavaScript、Groovy JavaCompile…

P459 包装类Wrapper

包装类的分类 1&#xff09;针对八种基本数据类型相应的引用类型——包装类。 2&#xff09;有了类的特点&#xff0c;就可以调用类中的方法。 Boolean包装类 Character包装类 其余六种Number类型的包装类 包装类和基本数据类型的相互转换 public class Integer01 {publi…

关于数据库和数据表的基础SQL

目录 一. 数据库的基础SQL 1. 创建数据库 2. 查看当前有哪些数据库 3. 选中数据库 4. 删除数据库 5. 小结 二. 数据表的基础SQL 1. 创建数据表 2. 查看当前数据库中有哪些表 3. 查看指定表的详细情况(查看表的结构) 4. 删除表 5. 小结 一. 数据库的基础SQL 1. 创建…

Redis篇 redis基本命令和定时器原理

基本命令和定时器原理 一. exists命令二. del命令三. Expire命令四. ttl命令五. redis的过期策略六. 定时器的两种设计方式七. type命令 一. exists命令 用来判断key的值是否存在 返回值是key的个数 这样写的话&#xff0c;有没有什么区别呢&#xff1f; 效率变低&#xff0c;消…

用例篇

弱网测试 弱网测试的目的是尽可能保证用户体验&#xff0c;关注的关键点包括&#xff1a; 页面响应时间是否可以接受&#xff0c;关注包括哦热启动、冷启动时间、页面切换、前后台切换、首字时间&#xff0c;首屏时间等。页面呈现是否完成一致。超时文案是否符合定义&#xf…