1705 浩神的电脑
作者:互联网
1705 题目地址
思路分析:首先应该把8种安全软件存放在一个字符串数组当中。对于输入,分为两个字符串:分别是指令和软件。
这里我们要用到map<string,bool>,用来标记这个软件是否已经下载
当指令s是下载软件时,输入软件名,然后查看map[s]的值,如果是0,则下载;如果是1,则闭嘴。
当指令s是卸载软件时,输入软件名,然后查看map[s]的值,如果是
0,则输出找不到;如果是1,则卸载该软件。
最后一种情况当指令s是Query时,需要遍历8种软件是否都已经下载在电脑里面(即使得map[si]==1).,注意这里是mp[str[i]].。考虑到只要有一个软件没有在电脑,则立即报出不安全状态,则设置一个标记,查询到任一软件不存在时,则立即中断,视为不安全状态。当且仅当都在时,状态安全。
代码:
#include <bits/stdc++.h>
using namespace std;
map <string,bool> mp;
int main()
{
string str[8]= {"360SAFE","360BROWSER","QQGUARD","360SD","360DESKTOP","360YASUO","360WD",
"360SAFEBOX"
};
int n;
while(cin>>n)
{
mp.clear();
while(n--)
{
string s1,s2;
cin>>s1;
if(s1=="Install")
{
cin>>s2;
if(!mp[s2])
{
mp[s2]=1;
cout<<"The software has been installed!"<<endl;
}
}
else if(s1=="Uninstall")
{
cin>>s2;
if(mp[s2]) //如果卸载的软件已经在电脑
{
mp[s2]=0;//卸载置零
cout<<"The software has been uninstalled!"<<endl;
}
else
{
cout<<"The software is not found!"<<endl;
}
}
else if(s1=="Query")
{
int f=1;
for(int i=0; i<8; i++)
{
if(!mp[str[i]])
{
f=0;
break;
}
}
if(f)
cout<<"Your computer is secure!"<<endl;
else
cout<<"Your computer is not secure!"<<endl;
}
}
}
return 0;
}
标签:map,1705,浩神,s2,电脑,cin,mp,软件,cout 来源: https://blog.csdn.net/qq_43060884/article/details/112544995