SRM480
250pt:
题意:给定n个网站,以及n个网站的关键词,还有一个危险词库。如果一个网站的关键词中>=th的危险词,那么这个网站便是危险的。同时,他的所有关键词加入危险词库。问,有多少个危险网站。
思路:直接模拟。
code:
#line 7 "InternetSecurity.cpp"
#include <cstdlib>
#include <cctype>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
#include <sstream>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <fstream>
#include <numeric>
#include <iomanip>
#include <bitset>
#include <list>
#include <stdexcept>
#include <functional>
#include <utility>
#include <ctime>
using namespace std; #define PB push_back
#define MP make_pair #define REP(i,n) for(i=0;i<(n);++i)
#define FOR(i,l,h) for(i=(l);i<=(h);++i)
#define FORD(i,h,l) for(i=(h);i>=(l);--i) typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<double> VD;
typedef long long LL;
typedef pair<int,int> PII; class InternetSecurity
{
public:
vector<string> A[];
bool v[];
vector <string> determineWebsite(vector <string> wbs, vector <string> key, vector <string> dan, int th)
{
for (int i = ; i < key.size(); ++i){
string tmp;
stringstream ss;
A[i].clear();
ss << key[i];
while (ss >> tmp) A[i].PB(tmp);
// cout << A[i][A[i].size() - 1] << endl;
}
set<string> S;
memset(v, , sizeof(v));
for (int i = ; i < dan.size(); ++i) S.insert(dan[i]);
bool keepLooking = true;
while (keepLooking){
keepLooking = false;
for (int i = ; i < key.size(); ++i)
if (!v[i]){
int cnt = ;
for (int j = ; j < A[i].size(); ++j)
if (S.find(A[i][j]) != S.end()) ++cnt;
if (cnt >= th){
keepLooking = true;
v[i] = true;
for (int j = ; j < A[i].size(); ++j)
S.insert(A[i][j]);
}
}
}
vector<string> ans;
ans.clear();
for (int i = ; i < key.size(); ++i)
if (v[i]) ans.PB(wbs[i]);
return ans;
}
};
450pt:
题意:给定一个DAG的客户机及服务器之间的关系,服务器只有入边。现在求在那些边上装一些安全设置,使得所有客户机到服务器至少都有经过一个安全设置的边。
思路:因为是DAG,那么直接对原图进行一边搜索,记录直接点的状态,转移到根状态
code:
#line 7 "NetworkSecurity.cpp"
#include <cstdlib>
#include <cctype>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
#include <sstream>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <fstream>
#include <numeric>
#include <iomanip>
#include <bitset>
#include <list>
#include <stdexcept>
#include <functional>
#include <utility>
#include <ctime>
using namespace std; #define PB push_back
#define MP make_pair #define REP(i,n) for(i=0;i<(n);++i)
#define FOR(i,l,h) for(i=(l);i<=(h);++i)
#define FORD(i,h,l) for(i=(h);i>=(l);--i) typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<double> VD;
typedef long long LL;
typedef pair<int,int> PII; class NetworkSecurity
{
public:
int n, m, ans;
bool vis[];
vector<string> S, C;
long long S1[];
void dfs(int u){
if (vis[u]) return;
vis[u] = true;
S1[u] = ;
for (int i = ; i < C[u].size(); ++i)
if (C[u][i] == 'Y'){
dfs(i);
S1[u] |= S1[i];
}
for (int i = ; i < S[u].size(); ++i)
if (S[u][i] == 'Y'){
if (!((1LL << i) & S1[u])){
++ans;
S1[u] |= (1LL << i);
}
}
}
int secureNetwork(vector <string> clientCable, vector <string> serverCable)
{
ans = ;
S = serverCable;
C = clientCable;
memset(vis, , sizeof(vis));
for (int i = ; i < S.size(); ++i)
if(!vis[i]) dfs(i);
return ans;
}
};
SRM480的更多相关文章
随机推荐
- dpdk优化相关 转
注:本文是参照了一些其他文章,原文地址点击这里. 首先根据这篇文章进行了性能瓶颈的分析 策略与方法 首先根据木桶原理,首先要找到最弱的地方,怎么找往上看↑. 想能优化需要考虑如下: 优化BIOS设置 ...
- Android.HowToDesignPluginArchitectureInAndroidApp
There is a tools called "dx", this tool can transfer Java Binary Code into Android Dalvik ...
- NOI导刊 2018河南郑州游记
前言 本蒟蒻来自浙江的弱市弱校,因为不想两年\(OI\)一场空,以及想出去玩,所以与同届大佬一起报了\(NOI\)导刊,希望能留下点不错的记忆吧. \(Day\ 0\) \(10\)月\(1\)日 经 ...
- 04. pt-deadlock-logger
死锁:是指两个或则多个事务在同一个资源上相互占用,并请求锁定对方占用的资源,而导致恶性循环的现象:当产生死锁的时候,MySQL会回滚一个小事务的SQL,确保另一个完成.上面是死锁的概念,而在MySQL ...
- Java 使用jdk自带的wsimport命令生成webservice客户端代码
wsimport -s E:\workspace\givemewords\src -p com.test.service -keep http://localhost:8085/Service/Fun ...
- Spring ConversionService 类型转换(二) ConversionService
Spring ConversionService 类型转换(二) ConversionService Spring 系列目录(https://www.cnblogs.com/binarylei/p/1 ...
- 第一个spring boot 程序
安装.运行.预览省略 错误1:8080端口被IIS占用,关闭它 Description: The Tomcat connector configured to listen on port 8080 ...
- tesseract-ocr如何训练Tesseract 4.0
引自:https://blog.csdn.net/huobanjishijian/article/details/76212214 原文:https://github.com/tesseract-oc ...
- 使用policheck 检测
Policheck is a profing and testing tool for sensitive terminology and helps in ensuring thattrustwor ...
- hdu 6073
题意: 给出一个二部图,U.V分别是二部图的两个点集,其中,U中每个点会有两条边连到V中两个不同的点. 完美匹配定义为:所有点都成功匹配. 思路:已知一定是完美匹配了呀(也一定存在),我们先把度数为一 ...