kickstart-F
A题
Anagrams字符串是指两个字符串中都出现相同的字母且这些字母出现的次数相同。
小数据完全可以暴力,遍历A的子串,遍历B的子串,通过bool f(i,j,k,l)计算A[i,j], B[k,l]是否符合要求,其中f函数要做的就是统计字母出现次数O(L)复杂度,同时4重循环找两个子串,总的复杂度是O(L^5).
下面优化一下,两个子串不等长肯定false,所以可以省略一个循环,bool f(i,j,k,k+(j-i)), 复杂度O(L^4).
能不能再优化呢?空间换时间好了,预处理B的子串,将字母统计量hash数组num[26]转换为string存到set中,时间复杂度O(L^2),为什么这么少呢,因为大神解法省去了计算统计量的循环,已知B[i..j]就可以直接计算B[i..j+1]了. 再遍历A的子串,统计它的字母统计量后看set中是否存在,存在cnt++即可. 最后的时间复杂度O(L^2)。
B题
一定要仔细读题,任意两个path的距离不等,观察样例特点,发现可以变化的只发生在距离为0的点,互相连接的点。其中因为要求最短距离,所以每次只统计与当前点邻接的最短距离,并记录端点。
#include <iostream>
#include<stdio.h>
#include <set>
#include <string>
using namespace std; int main()
{
//freopen("/Users/zjg/CLionProjects/ac/B-large-practice.in","r",stdin);
//freopen("/Users/zjg/CLionProjects/ac/B-large-practice.out","w",stdout);
int T;
cin>>T;
for(int t=;t<=T;t++)
{
int v,e;
set<int> zero;
int nn[v];
int dis[v];
fill(dis,dis+v,);
for(int i=;i<e;i++)
{
int a,b,d;
cin>>a>>b>>d;
a--,b--;
if(d<dis[a])
{
dis[a]=d;
nn[a]=b;
}
if(d<dis[b])
{
dis[b]=d;
nn[b]=a;
}
if(d==)
{
zero.insert(a);
zero.insert(b);
}
}
long long ans=;
for(int i=;i<v;i++)
{
if(nn[i]==-)continue;
if(nn[nn[i]]==i)
{
ans<<=;
nn[nn[i]]=-;
nn[i]=-;
}
else if(zero.count(nn[i]))
ans<<=;
}
cout<<"Case #"<<t<<": "<<ans<<endl;
}
return ;
}
kickstart-F的更多相关文章
- Mysql_以案例为基准之查询
查询数据操作
- google Kickstart Round F 2017 四道题题解
Problem A. Kicksort 题意抽象一下为: 对于一个每次都从数列正中间取划分数的快速排序,给定一个1-n的排列,问快排的复杂度对于这个排列是否会退化为最坏复杂度. 数据范围: 测试组数1 ...
- KickStart 无人值守安装系统
一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...
- kickstart+ftp+tftp+dhcp+PXE
##########yum less install.log #看安装log yum install system-config-kickstart* -y yum install tftp* -y ...
- [转]CentOS 6.4下PXE+Kickstart无人值守安装操作系统
一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...
- 烂泥:KVM、kickstart与nginx集成
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前几篇文章介绍了FTP.NFS与KVM.kickstart集成的案例,从这篇文章开始,我们来介绍HTTP方式与KVM.kickstart集成. HTTP ...
- 烂泥:KVM、kickstart与FTP集成
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在上一篇文章中,我们介绍了有关KVM.kickstart与NFS集成的相关内容.在这节我们将继续介绍FTP与KVM.kickstart集成的相关操作. ...
- 烂泥:KVM、kickstart与NFS集成
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 其实这篇文章原本是可以不写的,不过为了学习NFS的使用形式还是写下,算是作为一个笔记. 有关NFS的搭建与配置,可以参考我以前的文档<烂泥:NFS ...
- 烂泥:KVM与kickstart集成
本文由秀依林枫提供友情赞助,首发于烂泥行天下. KVM与kickstart集成在这里我要说明下,因为在前面有关CentOS无人值守安装的文章中,我提到过如果要使用网卡PXE功能的话,内网中必须有DHC ...
- CentOS6 PXE+Kickstart无人值守安装
一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...
随机推荐
- python字典不区分大小写
from multidict import CIMultiDict dic=CIMultiDict() dic["key"]="1234" print(dic[ ...
- MYSQL添加远程用户或允许远程访问
1.用root用户登陆 格式:grant 权限 on 数据库教程名.表名 to 用户@登录主机 identified by "用户密码"; @ 后面是访问M ...
- python结合pyvmomi 监控esxi的磁盘等信息
1.安装python3.6.6 # 安装依赖,一定要安装,否则后面可能无法安装一些python插件 yum -y install zlib-devel bzip2-devel openssl-deve ...
- PHP IDE选择标准
2017年11月17日09:35:01 这里记录一下PHP IDE的选择标准 1. 是否有错误提示, 对于一些 `缺少分号`, `花括号不配对`, `变量未定义就使用`等待的提示是要有的 2. 代码 ...
- Golang channel 特性
最近在项目中遇到了 Go channel 的一些问题,在此记录下 close channel 的一些特性. 关闭channel ch := make(chan bool) close(ch) clos ...
- sqlserver记录去重
,[emp_name] ,[gender] ,[department] ,[salary] from [employee] select * from ( select ROW_NUMBER() ov ...
- 【原创】大数据基础之Kerberos(2)hive impala hdfs访问
1 hive # kadmin.local -q 'ktadd -k /tmp/hive3.keytab -norandkey hive/server03@TEST.COM'# kinit -kt / ...
- Go 开源博客平台 Pipe 1.0.0 发布!
这是 Pipe 博客平台的第一个正式版,欢迎大家使用和反馈建议! 简介 Pipe 是一款小而美的开源博客平台,通过黑客派账号登录即可使用. 动机 产品层面: 市面上缺乏支持多独立博客的平台级系统 实现 ...
- 在启用属性的情况下启动 Confluence 6
在一些情况下,你可以希望 Confluence 在系统启动的时候就对属性文件进行打印.如果你的 Confluence 经常进行重启,并且你可能忘记来启动针对系统诊断的属性文件日志开关. 编辑 CONF ...
- Function types cannot have argument labels 错误解决方案
今天在封装网络工具类的时候 报错了 经过分析发现是在Swift3.0 把闭包的入参的参数名去掉就好了 正确写法 completion: @escaping (Any?, Bool)->() 错误 ...