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的更多相关文章

  1. Mysql_以案例为基准之查询

    查询数据操作

  2. google Kickstart Round F 2017 四道题题解

    Problem A. Kicksort 题意抽象一下为: 对于一个每次都从数列正中间取划分数的快速排序,给定一个1-n的排列,问快排的复杂度对于这个排列是否会退化为最坏复杂度. 数据范围: 测试组数1 ...

  3. KickStart 无人值守安装系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  4. kickstart+ftp+tftp+dhcp+PXE

    ##########yum less install.log #看安装log yum install system-config-kickstart* -y yum install tftp* -y ...

  5. [转]CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  6. 烂泥:KVM、kickstart与nginx集成

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前几篇文章介绍了FTP.NFS与KVM.kickstart集成的案例,从这篇文章开始,我们来介绍HTTP方式与KVM.kickstart集成. HTTP ...

  7. 烂泥:KVM、kickstart与FTP集成

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在上一篇文章中,我们介绍了有关KVM.kickstart与NFS集成的相关内容.在这节我们将继续介绍FTP与KVM.kickstart集成的相关操作. ...

  8. 烂泥:KVM、kickstart与NFS集成

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 其实这篇文章原本是可以不写的,不过为了学习NFS的使用形式还是写下,算是作为一个笔记. 有关NFS的搭建与配置,可以参考我以前的文档<烂泥:NFS ...

  9. 烂泥:KVM与kickstart集成

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. KVM与kickstart集成在这里我要说明下,因为在前面有关CentOS无人值守安装的文章中,我提到过如果要使用网卡PXE功能的话,内网中必须有DHC ...

  10. CentOS6 PXE+Kickstart无人值守安装

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

随机推荐

  1. unity提示can't add script解决办法

    1.脚本有误没有继承unity类. 2.类名文件名不一致. 3.内部逻辑代码有误.

  2. Apollo 启动脚本解析

    Apollo 启动脚本解析 sudo service docker start -- 是在ubuntu14.04中打开 在dev_start.sh脚本中会调用restart_map_volume.sh ...

  3. druid安装

    只要下载duridjar包,然后在web.xml配置拦截器(此处不配置监控无法显示web情况,只能看到sql情况)和servlet, 然后在spring配置文件中修改DataSource即可.

  4. ubuntu 安装 wireshark

    1.添加 wireshark 源 sudo apt-add-repository ppa:wireshark-dev/stable 2.更新    sudo apt-get update 3.安装 w ...

  5. 利用表格分页显示数据的js组件bootstrap datatable的使用

    前面展示了datatable的简单使用,还可以通过bootstrap结合datatable来使用,这样可以进一步美化datatable插件 <!DOCTYPE html> <html ...

  6. 51nod--1256 乘法逆元 (扩展欧几里得)

    题目: 1256 乘法逆元 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < ...

  7. Light Oj 1003

    题意 : 给你m个二元关系, 问是否可以确定各个节点的先后关系: 思路: 拓扑排序, 判断是否有环: #include<bits/stdc++.h> using namespace std ...

  8. springboot 文件上传大小配置

    转自:https://blog.csdn.net/shi0299/article/details/69525848 springboot上传文件大小的配置有两种,一种是设置在配置文件里只有两行代码,一 ...

  9. python 基础 Two day

    1.格式化输出 %s   字符串 %d   数字 %%  转义 % %f   小数 现在有以下需求,让用户输入name, age, job,hobby 然后输出如下所示: ------------ i ...

  10. js -- sort() 使用排序函数

    JavaScript sort() 方法 JavaScript Array 对象 定义和用法 sort() 方法用于对数组的元素进行排序. 语法 arrayObject.sort(sortby) 参数 ...