小R与手机
Description
小R有n部手机,为了便于管理,他对一些手机设置了“呼叫转移”的功能。
具体来说,第 i(1≤i≤n) 部手机有个参数 ai(0≤ai≤n,ai≠i) 。若 ai≠0 则表示第 i 部手机接到电话时会将电话无条件转移给第 ai 部手机(此时如果 aai≠0, 会继续进行呼叫转移)。
如果一部手机接到电话会导致至少 109 次呼叫转移,则这次电话无法接通。
现在有m个事件依次发生,具体如下:
∙1 x y表示将第x部手机的参数设置为y,即将 ax 设置为y ;
∙2 x表示询问给第x部手机打电话,最终接到电话的手机编号(如果无法接通,则输出-1 )。
小R当然知道怎么做啦!但是他想考考你。
Input
输入的第一行有两个整数n, m。保证 1≤n,m≤2∗105 。
接下来一行,包含n个整数,第i个整数为 ai 。
接下来m行,每一行为一个事件,具体格式见问题描述。
对于事件1,保证 1≤x≤n,0≤y≤n,x≠y ;对于事件2,保证 1≤x≤n
Output
对每个询问事件输出一行一个整数,表示最终接到电话的手机编号,如果无法接通,输出-1。
Sample Input
5 6
2 3 4 5 0
2 2
2 5
1 4 3
2 1
1 4 0
2 1
Sample Output
5
5
-1
4
HINT
对于20%的数据, n,m≤5000
对于另外20%的数据,只有2操作
对于所有数据, n,m≤2∗105
正解是LCT…
然而暴力可以过80%的点
然而我却只拿了20分…
注意啊注意啊…
memset这东西是第三次坑我了…
memset跑得真的好慢啊…
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
const int maxN = (int)2e5;
int fa[maxN + 1];
int vis[maxN + 1];
int main()
{
#ifndef ONLINE_JUDGE
freopen("phone.in", "r", stdin);
freopen("phone.out", "w", stdout);
#endif
ios::sync_with_stdio(false);
int n, m;
cin >> n >> m;
for(int i = 1; i <= n; i ++)
cin >> fa[i];
for(int i = 1; i <= m; i ++)
{
int opt;
cin >> opt;
if(opt == 1)
{
int u, v;
cin >> u >> v;
fa[u] = v;
}
if(opt == 2)
{
int u;
cin >> u;
int flag = 0;
while(1)
{
if(vis[u] == i)
break;
vis[u] = i;
if(! fa[u])
{
flag = 1;
break;
}
u = fa[u];
}
if(! flag)
printf("-1\n");
else
printf("%d\n", u);
}
}
}
小R与手机的更多相关文章
- HDU 5967 小R与手机(动态树)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5967 [题目大意] 给出一张图,每个点仅连一条有向边,或者不连, 要求查询在可更改有向边的情况每个 ...
- 【BZOJ】【3280】小R的烦恼
网络流/费用流 和软件开发那题基本相同,只是多加了一个“雇佣研究生”的限制:不同价格的研究生有不同的数量…… 那么只需加一个附加源点,对每一种研究生连边 S->ss 容量为l[i],费用为p[i ...
- BZOJ3280: 小R的烦恼
题解: 随便建一下图费用流就可以过吧... 代码: #include<cstdio> #include<cstdlib> #include<cmath> #incl ...
- BZOJ 3280: 小R的烦恼 & BZOJ 1221: [HNOI2001] 软件开发
3280: 小R的烦恼 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 399 Solved: 200[Submit][Status][Discuss ...
- 洛谷 U2878 小R的分数比赛(fraction)
题目提供者 2015c07 标签 数论(数学相关) 高精度 难度 尚无评定 通过/提交 0/29 提交该题 记录 题目背景 P5难度系数:★★★☆☆ 小R再次挑战你. 这次的挑战又会是什么呢? 题目描 ...
- 微信小程序与手机APP区别
微信小程序与手机APP区别 ------------------<><><><>------------------ 微信小程序自去年年初,张小龙放话要 ...
- 【BZOJ3280】小R的烦恼 最小费用最大流
[BZOJ3280]小R的烦恼 Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要求小R帮助他一起解决一个难题. 问题是这样的 ...
- bzoj3280: 小R的烦恼(最小费用最大流)
Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要 求小R帮助他一起解决一个难题.问题是这样的,程设老师最近要进行一项邪恶的实 ...
- 解决微信小程序安卓手机访问不到图片,无法显示图片
关于微信小程序不显示图片 通病可能有以下几个可能性: 非本地图片:确定图片资源存在,copy 图片url再浏览器打开,确定图片资源存在且能正常访问 本地图片:确定相对路径或者绝对路径正确 微信小程序图 ...
随机推荐
- MySQL配置允许远程登录
MySQL默认只允许用户本地登录,需要远程连接可进行如下操作: 允许root用户在任何地方进行远程登录,并具有所有库任何操作权限: 使用root用户登录mysql: mysql -u root -p& ...
- action属性和data属性组合事例
- webdriver高级应用- 右键另存为下载文件
1.要使用右键另存,需要先按照第三方工具AutoIt: 链接: https://pan.baidu.com/s/12aBBhOOTmyQpH9hukt0XGA 密码: fcdk 2.创建一个名为loa ...
- selenium - js日历控件处理
# 13. js处理日历控件 ''' 在web自动化的工程中,日历控制大约分为两种: 1. 可以直接输入日期 2. 通过日历控件选择日期 基本思路: 利用js去掉readonly属性,然后直接输入时间 ...
- PHPSTORM杂技
PHPSTORM技巧 去掉右上角弹出浏览器条 settings->web browsers->show browser popup in the editor前的钩去掉 让class fu ...
- npm link & run npm script
npm link & run npm script https://blog.csdn.net/juhaotian/article/details/78672390 npm link命令可以将 ...
- JDBC 学习笔记(六)—— PreparedStatement
1. 引入 PreparedStatement PreparedStatement 通过 Connection.createPreparedStatement(String sql) 方法创建,主要用 ...
- 【Luogu】P3979遥远的国度(树链剖分)
题目链接 不会换根从暑假开始就困扰我了……拖到现在…… 会了还是很激动的. 换根操作事实上不需要(也不能)改树剖本来的dfs序……只是在query上动动手脚…… 设全树的集合为G,以root为根,u在 ...
- 面试题之redis的过期时间原理
1.消极方法:每次访问key时判断key是否已经过期: 2.积极方法:周期性的从设置了过期时间的key中选择一部分的key进行删除 a.随机测试20个带有timeout信息的key b.如果超过25% ...
- mysql监控指标
1.最大连接数监控 show VARIABLES like "max_connections"; //最大连接数 show global status like 'Threads_ ...