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的网络模式,支持 ...
随机推荐
-
Java小知识--length,length(),size()方法详细介绍
Java中length,length(),size()区别 length属性:用于获取数组长度. eg: int ar[] = new int{1,2,3} /** * 数组用length属性取得长度 ...
-
Chrome 自动填充的表单是淡黄色的背景怎么办!
chrome浏览器自动填充表单的黄色背景高亮(#FAFFBD)一直困扰着我,我之前没想着理它,可是最近一个登陆框,需要用到图标,于是我草率的直接设置在input元素里面,结果问题就来了,很难看很难看, ...
-
通过实例解释LinuxC下argc,argc[]的意义
MarkdownPad Document html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,ab ...
-
FPGA与Deep Learning
你还没听过FPGA?那你一定是好久没有更新自己在IT领域的知识了. FPGA全称现场可编程门阵列(Field-Programmable Gate Array),最初作为专用集成电路领域中的一种半定制电 ...
-
java-网络通信-索引
HTTP协议 关于HTTP协议,一篇就够了 HTTP与HTTPS的区别 HTTP Keep-Alive模式 HTTP长连接和短连接 HTTP的长连接(持久连接)和短连接 HTTP的长连接 ...
-
【转】Qt之JSON保存与读取
简述 许多游戏提供保存功能,使得玩家在游戏中的进度可以被保存,并在以后再玩的时候进行加载.保存游戏的过程通常涉及将每个游戏对象的成员变量序列化为文件.要实现这个功能,可以采取许多格式,其中之一就是 J ...
-
JS_高程5.引用类型(3)Array类型-检测数组
1. instanceof操作符(ECMAScript3) 对于一个网页,或者是一个全局作用域而言,使用instanceof操作符来检测数组就可以得到满意的结果. 语法:if(value instan ...
-
使用两个栈来完成一个队列,需要是实现的功能有add,poll.peek
2017-06-23 19:15:16 队列时先进先出型,而栈是先进后出型,这就需要建立一个联系.我想到的一个简单的表示方式是: 这样就需要两个栈,栈1是用来实现add操作,即直接push进去就行:栈 ...
-
尚硅谷springboot学习14-自动配置原理
配置文件能配置哪些属性 配置文件能配置的属性参照 自动配置的原理 1).SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration 2).@Ena ...
-
C# Web 数据注解Data Annotations、模型状态ModelState、数据验证
C#中的模型状态与数据注解,为我们提供了很便利的请求数据的验证. 1. ModelState ModelState在进行数据验证的时候很有用的,它是: 1)验证数据,以及保存数据对应的错误信息. 2) ...