题目传送门

题目背景

一个未经初始化的变量,里面存储的值可能是任意的。因此直接使用未初始化的变量,比如将其赋值给另一个变量,并不符合一般的编程逻辑。代码中出现这种情况,往往是因为遗漏了初始化语句、或是打错了变量名。对代码中使用了未初始化变量的语句进行检查,可以方便地排查出代码中的一些隐秘 Bug。

问题描述

考虑一段包含 k 条赋值语句的简单代码。该段代码最多使用到 n 个变量,分别记作 a1,a2,⋯,an;该段代码使用的常量均记作 a0。

第 i 条(1≤i≤k)赋值语句为 axi=ayi,满足 1≤xi≤n、0≤yi≤n,表示将 ayi 的值赋给变量 axi。其中 axi 被称为该赋值语句的左值,一定是个变量;ayi 被称为右值,可以是一个常量或变量。

对于任意一条赋值语句 axi=ayi,如果右值 ayi 是一个变量,则其应该在此之前被初始化过。
具体来说,如果变量 ayi 在前 i−1 条赋值语句中做为左值出现过,即存在 j<i 满足 xj=yi(这里无需考虑第 j 条赋值语句本身是否也有右值未初始化的问题),我们就认为在第 i 条赋值语句中 ayi 已被初始化;
否则,我们认为该条语句存在右值未初始化的问题。

按照上述规则,试统计给定的代码中,有多少条赋值语句右值未被初始化。

输入格式

输入的第一行包含空格分隔的两个正整数 n、k,分别表示变量的数量和赋值语句的条数。

接下来输入 k 行,其中第 i 行(1≤i≤k)包含空格分隔的两个正整数 xi、yi,表示第 i 条赋值语句。

输出格式

输出一个整数,表示有右值未被初始化问题的赋值语句条数。

样例输入

10 7
1 2
3 3
3 0
3 3
6 2
2 1
8 2

Data

样例输出

3

Data

样例解释

其中第一、二、五条赋值语句右值未被初始化。

子任务

50% 的测试数据满足 0<n,k≤1000;

全部的测试数据满足 0<n,k≤105。

参考思路:

使用bool类型的数组vis,初始化vis[0]为true(标记常量为true),每当一个变量出现在左边时,将其标记为true。每当一个变量出现在赋值语句右边时且vis标记结果为false(即未被初始化),则计数结果加一。思路很简单,上代码:

#include <cstdio>const int N=100005;int ans;
int k,n,x,y;
bool vis[N];int main (void)
{vis[0]=true;//常量为true scanf("%d%d",&n,&k);while(k--){scanf("%d%d",&x,&y);ans+=!vis[y];vis[x]=true;}printf("%d\n",ans);return 0;
}

CSP认证 202203-1 未初始化警告相关推荐

  1. CSP 202203 题解:未初始化警告,出行计划,计算资源调度器,通信系统管理,博弈论与石子合并

    试题内容请前往CCF官网查看: CCF-CSP计算机软件能力认证考试 http://118.190.20.162/home.page CCF 官方题解请点击这里. 阅读本题解前,您应当了解下列知识: ...

  2. ~2 ccf 2022-03-1 未初始化警告

    未初始化警告 题目描述 输入 输出 样例输入 样例输出 源代码 子任务 关于这题 题目描述 输入 输出 样例输入 10 7 1 2 3 3 3 0 3 3 6 2 2 1 8 2 样例输出 3 源代码 ...

  3. 4454. 未初始化警告(只是题的长别怕,详细解读)

    题目 一个未经初始化的变量,里面存储的值可能是任意的. 因此直接使用未初始化的变量,比如将其赋值给另一个变量,并不符合一般的编程逻辑. 代码中出现这种情况,往往是因为遗漏了初始化语句.或是打错了变量名 ...

  4. CSP认证近两期试题汇总

    前言 因为了学分的需要,准备参加CSP认证,结果发现这个比赛没有题解,平台也没有提供相关讨论方式,因此决定以此来记录本人刷题解答.希望能够帮到大家,共同进步. 本人主要使用python刷题,但是pyt ...

  5. csp认证考试准备Day-3

    昨天复习了一点点,今天浅浅做几个第一道的真题吧 (1)202212-1 #include<bits/stdc++.h> using namespace std; int main() {d ...

  6. CSP认证题解第一题

    文章目录 202012-1 期末预测之安全指数 202009-1 称检测点查询 202006-1 线性分类器 201912-1 报数 201909-1 小明种苹果 201903-1 小中大 20181 ...

  7. C ++标准是否允许未初始化的bool使程序崩溃?

    本文翻译自:Does the C++ standard allow for an uninitialized bool to crash a program? I know that an " ...

  8. 校园宽带客户端认证程序无法继续初始化绑定通信接口网络地址失败_解决办法

    宽带认证客户端-警告"认证程序无法继续初始化,绑定通信接口网络地址失败(0.0.0.0:61400)!!!请检查是否有其他程序占用或拦截--- "解决办法 1.打开控制面板-网络和 ...

  9. 参加CCF CSP认证者须知

    发布单位:中国计算机学会      发布时间:2014-11-11 15:06    凡有意参加CCF CSP认证者,请在cspro.org网站上注册.报名.缴费.打印准考证,参加认证后可以在网站查询 ...

最新文章

  1. iOS开源程序下载链接整理
  2. linux printf 刷新,linux下printf中\n刷新缓冲区的疑问(已解决)
  3. Hystrix熔断器机制
  4. 微信小程序开发打开另一个小程序的实现方法
  5. arduino的IDE开发stm32的板子
  6. P4254-[JSOI2008]Blue Mary开公司【李超树】
  7. vue 外部方法调用内部_vue函数内部调用外部函数,报错外部函数不是函数
  8. HTTP Developer's Handbook Part V: Security 读书笔记
  9. 31 | 深度和广度优先搜索:如何找出社交网络中的三度好友关系?
  10. linux中sed命令用例,Linux中使用sed命令或awk命令修改常规配置文件
  11. 数学家告诉你什么时候结束单身?!
  12. QT4.8.5 显示中文
  13. 电商促销海报BANNER设计要点,万能套用PSD分层模板,先收好!
  14. STM32 GPIO模拟I2C的SHT20温湿度采样
  15. 惊!Adam效果不好居然是因为……,Decouple Weight Decay Regulaization阅读笔记
  16. dedecms使用AB模板后台如何静态化tag标签
  17. 垂直搜索开发:垂直搜索引擎开发全过程[原创]
  18. 第3章第6节:如何在幻灯片中使用gif动画 [PowerPoint精美幻灯片实战教程]
  19. 真假美猴王:假冒Android版赛博朋克2077,暗含勒索软件
  20. 2022开源PHP留言反馈管理系统 v2.0

热门文章

  1. kodi linux版本,如何在 Ubuntu 14.04 和 Linux Mint 17 中安装 Kodi14(XBMC)
  2. STM32F103双向可控硅调节220V调光
  3. [商鞅] 商鞅的死,说明了什么?
  4. SolidWorks2010常用快捷键
  5. Day10_Git版本控制、项目总结,preview_220627,
  6. 蔡高厅高等数学33-微分中值定理(Rolle定理)、-Lagrange 定理
  7. 程序员手工搭建“波音737”模拟驾驶舱,网友直呼牛!
  8. 2022年广东工业大学文远知行杯新生程序设计竞赛(10/13)
  9. android反编译后有中文乱码,android反编译查看源码,apk解压后XML乱码解决
  10. 第一部用计算机虚拟现实,“通过计算机虚拟现实﹐而不去进行昂贵的度假"是利用了40个发明原理中的( ) 。...