[HDU6223]Infinite Fraction Path
题目大意:
有$n(n\leq 150,000)$个编号为$0_n-1$格子,每个格子有一个权值$w_i(0\leq w_i\leq 9)$。从任意一个点出发,按照一定的规则进行跳转。设当前的格子为$i$,下一步跳转到$(i^2+1)\mod n$的位置上。连续跳转$n$次,问最后经过格子的权值组成的串,字典序最大的是多少。
思路:
BFS剪枝。
每次把当前层最大的加入队列,然后再把下一层也加入队列。
一个剪枝是把小于当前层最大值的去掉,另一个剪枝是把同一层访问多次的点只保留一个。
#include<queue>
#include<cstdio>
#include<cctype>
typedef long long int64;
inline int getint() {
register char ch;
while(!isdigit(ch=getchar()));
register int x=ch^'';
while(isdigit(ch=getchar())) x=(((x<<)+x)<<)+(ch^'');
return x;
}
inline int getdigit() {
register char ch;
while(!isdigit(ch=getchar()));
return ch^'';
}
const int N=;
int a[N],max[N],vis[N];
struct Node {
int pos,dep;
};
std::queue<Node> q;
int main() {
const int T=getint();
for(register int i=;i<=T;i++) {
printf("Case #%d: ",i);
const int n=getint();
bool same=true;
for(register int i=;i<n;i++) {
a[i]=getdigit();
max[i]=vis[i]=;
}
for(register int i=;i<n;i++) {
if(a[i]!=a[i-]) same=false;
}
if(same) {
for(register int i=;i<n;i++) {
putchar(a[i]^'');
}
putchar('\n');
return ;
}
for(register int i=;i<n;i++) {
if(a[i]>=max[]) {
max[]=a[i];
q.push((Node){i,});
}
}
while(!q.empty()) {
const int pos=q.front().pos,dep=q.front().dep;
q.pop();
if(a[pos]<max[dep]||dep+==n) continue;
if(a[((int64)pos*pos+)%n]>=max[dep+]&&vis[((int64)pos*pos+)%n]!=dep+) {
vis[((int64)pos*pos+)%n]=dep+;
max[dep+]=a[((int64)pos*pos+)%n];
q.push((Node){((int64)pos*pos+)%n,dep+});
}
}
for(register int i=;i<n;i++) {
putchar(max[i]^'');
}
putchar('\n');
}
return ;
}
[HDU6223]Infinite Fraction Path的更多相关文章
- hdu6223 Infinite Fraction Path 2017沈阳区域赛G题 bfs加剪枝(好题)
题目传送门 题目大意:给出n座城市,每个城市都有一个0到9的val,城市的编号是从0到n-1,从i位置出发,只能走到(i*i+1)%n这个位置,从任意起点开始,每走一步都会得到一个数字,走n-1步,会 ...
- HDU6223 Infinite Fraction Path bfs+剪枝
Infinite Fraction Path 这个题第一次看见的时候,题意没搞懂就没做,这第二次也不会呀.. 题意:第i个城市到第(i*i+1)%n个城市,每个城市有个权值,从一个城市出发走N个城市, ...
- 【赛后补题】(HDU6223) Infinite Fraction Path {2017-ACM/ICPC Shenyang Onsite}
场上第二条卡我队的题目. 题意与分析 按照题意能够生成一个有环的n个点图(每个点有个位数的权值).图上路过n个点显然能够生成一个n位数的序列.求一个最大序列. 这条题目显然是搜索,但是我队在场上(我负 ...
- 2017沈阳区域赛Infinite Fraction Path(BFS + 剪枝)
Infinite Fraction Path Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java ...
- 2017 ACM/ICPC 沈阳 G题 Infinite Fraction Path
The ant Welly now dedicates himself to urban infrastructure. He came to the kingdom of numbers and s ...
- Infinite Fraction Path(HDU6223 + bfs + 剪枝)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6223 题目: 题意: 给你一个长度为n的数字串,开始时你选择一个位置(记为i,下标从0开始)做为起点 ...
- HDU6223——2017ICPC沈阳G Infinite Fraction Path
题意: 给定一个数字串,每个位子都能向(i*i+1)%n的位子转移,输出路径上,字典序最大的,长度为n的串. 参考:https://www.cnblogs.com/mountaink/p/954144 ...
- HDU6223 && 2017沈阳ICPC: G. Infinite Fraction Path——特殊图&&暴力
题意 给定一个数字串,每个位子都能向(i*i+1)%n的位子转移,输出在路径上.字典序最大的.长度为n的串($n \leq 150000$). 分析 先考虑一个暴力的方法,考虑暴力每个x,然后O(n) ...
- Infinite Fraction Path HDU 6223 2017沈阳区域赛G题题解
题意:给你一个字符串s,找到满足条件(s[i]的下一个字符是s[(i*i+1)%n])的最大字典序的长度为n的串. 思路:类似后缀数组,每次倍增来对以i开头的字符串排序,复杂度O(nlogn).代码很 ...
随机推荐
- Python学习-day17 jQuery method and demo
一:介绍: jQuery:是DOM和js的封装.jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多).现在大多数的pc端的网站都 ...
- Unity插件
1.2D Toolkit 如果过去你一直从事3D游戏开发,最近想转做2D游戏,最好尝试一下2D Toolkit.2D Toolkit是一款2D开发组件,它具有很强的灵活性和适应性,能够让开发者在Uni ...
- 【java并发编程实战】第二章:对象的共享
1.重要的属性 可见性,不变性,原子性 1.1可见性 当一个线程修改某个对象状态的时候,我们希望其他线程也能看到发生后的变化. 在没有同步的情况下,编译器和处理器会对代码的执行顺序进行重排.以提高效率 ...
- 2 28TOP100
import json import requests from requests.exceptions import RequestException import re import time d ...
- vmware设置静态ip(复制)
一.安装好虚拟后在菜单栏选择编辑→ 虚拟网络编辑器,打开虚拟网络编辑器对话框,选择Vmnet8 Net网络连接方式,随意设置子网IP,点击NAT设置页面,查看子网掩码和网关,后面修改静态IP会用到. ...
- 2017 多校4 Security Check
2017 多校4 Security Check 题意: 有\(A_i\)和\(B_i\)两个长度为\(n\)的队列过安检,当\(|A_i-B_j|>K\)的时候, \(A_i和B_j\)是可以同 ...
- 【CF Round 429 B. Godsend】
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- Tomcat学习笔记(十三)
服务器组件和服务组件 服务器组件 org.apache.catalina.Server接口的实例表示Catalina的整个servlet引擎,包含了所有的组件.使用一种优雅的方法来启动/关闭整个系统, ...
- idea创建maven项目需要注意的问题
idea创建maven项目之后,我从deployment中看到报部署错误的问题,下图是解决问题的办法如下图所示:
- Linux下mknod详解
mknod - make block or character special filesmknod [OPTION]... NAME TYPE [MAJOR MINOR] option 有用的就是 ...