首页 > 其他分享 >P5550 Chino的数列

P5550 Chino的数列

时间:2023-07-11 23:12:19浏览次数:48  
标签:f2 P5550 数列 int ll long re Chino string

很想模拟,但是数据太大啦(悲。然后我想着用\(map\)映射来做,想着模拟几轮发现周期,然后映射求解。但是不知道为什么写崩了。勉强贴贴,反正不是正解(

#include <bits/stdc++.h>
#define ll long long
#define re register
using namespace std;
const int N=80+10, INF=0x3f3f3f3f;
ll n,s,m,k;
ll a[N];
string S;
string To(ll x[N]){
	string y;
	for(re int i=1;i<=n;i++)y+=(x[i]+'0');
	return y;
}
map<string,bool> f;
map<int,string> f2;
int main(){
	int loop=0;
	cin>>n>>s>>m>>k;
	for(re int i=1;i<=n;i++)cin>>a[i];
	S=To(a);
	f[S]=0;
	f2[0]=S;
	while(f[S]){
		f[S]=1;
		loop++;
		swap(a[s],a[m]);
		int t=a[1];
		for(int i=1;i<n;i++)a[i]=a[i+1];
		a[n]=t;
		S=To(a);
		f2[loop]=S;
	}
	cout<<f2[k%loop]<<endl;
	return 0;
}

标签:f2,P5550,数列,int,ll,long,re,Chino,string
From: https://www.cnblogs.com/FaceLuck/p/17546212.html

相关文章

  • 高等数学——数列的极限
    数列的极限定义数列:\(x_{1},x_{2},\dots,x_{n},\dots\)是一个从小到大的序列,称为数列,记为\(\{x_{n}\}\)其中\(x_{1}\)叫做项,\(x_{n}\)称为通项(一般项)。数列极限:设\(\{x_{n}\}\)是一个数列,\(\forall\varepsilon>0,\existsN\),使当\(n>N\)时,$|x_{n}-a|<\varepsilon$......
  • 快速等比数列求和
    快速等比数列求和1.等比数列求和公式要求给定的取余的数是质数,能求出逆元2.递归分解如果有偶数个,那么分解成两半,左边就为\(a_0+a_0q+a_0q^2...+a_0q^{n/2}\),另一半为\(a_0q^{n/2+1}+a_0q^{n/2+2}+a_0q^{n/2+3}...+a_0q^{n}\),令等比数列求和为一个函数\(f(n)\),就有\(f(n)=f......
  • 「学习笔记」数列分块入门 1 ~ 9
    一天多一点的时间,做完了这\(9\)道题,除了最后一道题之外,都感觉良好.这里是黄学长的博客.数列分块入门1区间加法,单点查值.很入门的题目了.暴力处理两边不完整的块,完整的块维护一个tag加法标记./*Thecodewaswrittenbyyifan,andyifanisneutral!!!......
  • 数列分块入门
    1.数列分块入门1区间修改,单点查询点击查看代码#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintMAXN=5e4+5;intn,len,cnt;inta[MAXN],tag[MAXN];intpos[MAXN],l[MAXN],r[MAXN];inlinevoidadd(intx,inty,intk){if(x>y)retu......
  • js 实现斐波那契数列
    O2^N算法,常规写法,递归实现functionfib(n){if(n==0||n===1)return1;returnfib(n-1)+fib(n-2);};console.log(fib(3));//5console.log(fib(5));//8O(N)算法,动态规划,重叠子问题functionfibonacci(n){if(n<=1)returnn;......
  • 数列分段 Section II
    数列分段SectionII题目描述对于给定的一个长度为N的正整数数列\(A_{1\simN}\),现要将其分成\(M\)(\(M\leqN\))段,并要求每段连续,且每段和的最大值最小。关于最大值最小:例如一数列\(4\2\4\5\1\)要分成\(3\)段。将其如下分段:\[[4\2][4\5][1]\]第一段和为\(6\),第......
  • 关于实数列上下极限一个定理的注解分析
    Ayumu的数学分析第18课讲到如下一个定理:这个定理没有什么问题.但是随后的注解部分是有问题的,摘录如下:在注解的扩展定义中,E可以涵盖上极限是-∞的情形,但不能涵盖上极限是+∞的情形;同样,F可以涵盖下极限是+∞的情形,但不能涵盖下极限是-∞的情形.具体看几个例子.......
  • 题解 P4108【[HEOI2015]公约数数列】
    看到这种奇怪的操作,首先想到分块。以下记值域为\(w\),块长为\(B\)。前缀\(\gcd\)显然单调不增,而且后一个必须是前一个的因数,如果变化至少要减半。因此,我们知道,共有\(\mathcalO(\logw)\)个不同的前缀\(\gcd\)。我们可以接受对这些块暴力,只需要对前缀\(\gcd\)都相同的块......
  • 期末考试YTU4035: Shmily(数学,等差数列)
    考试的时候看到这道题一眼前缀和,但是想了想要枚举每个区间是不是复杂度有点高,还是交上去了不出意外的 $TLE$ 了,想了十来分钟还是没想到怎么优化,考完问了一下大佬,原来用等差数列1ms就能过,听说双指针0ms(蒟蒻的我呜呜)众所周知等差数列的前$N$项和是$S$=a1 *n+(n*(n......
  • 数列极差问题(c语言实现)
    4.1题目算法实现题4-13数列极差问题★问题描述:在黑板上写了N个正数组成的一个数列,进行如下操作:每一次擦去其中2个数,设为a和b,然后在数列中加入一个数ab+1,如此下去直至黑板上只剩下一个数。在所有按这种操作方式最后得到的数中,最大的数记为max,最小的数记为min,则该数列的极差M定义......