首页 > 其他分享 >【板子】字符串最小表示法

【板子】字符串最小表示法

时间:2024-01-26 20:55:27浏览次数:28  
标签:int void long 板子 表示法 字符串 loop

//lg p1368
//Copyright yeyou26
#include<bits/stdc++.h>
using namespace std;

long long a[600005];
int n;

void init();
void solve()
{
    int i=1,j=2,k=0;
    while(i<=n && j<=n)
    {
        k=0;
        while(a[i+k]==a[j+k] && k<n) k++;
        if(a[i+k]>a[j+k]) i=i+k+1;
        else j=j+k+1;
        if(k==n) goto loop;
        if(i==j) j++;
    }
    loop :
    int ans=min(i,j);
    for(int p=1;p<=n;p++)
    {
        printf("%lld ",a[ans+p-1]);
    }
}

int main()
{
    freopen("working.in","r",stdin);
    freopen("working.out","w",stdout);
    init();
    solve();
    return 0;
}

//Function Implementation

void init()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        long long x;
        scanf("%lld",&x);
        a[i]=a[i+n]=x;
    }
}

标签:int,void,long,板子,表示法,字符串,loop
From: https://www.cnblogs.com/yeyou26/p/17990691

相关文章

  • 【板子】KMP
    //lgp3375//Copyrightyeyou26#include<bits/stdc++.h>usingnamespacestd;charp[1000005],s[1000005];intlenp,lens;intlst[1000005];voidinit();voidpre_work();voidkmp();voidout_put();intmain(){freopen("working.in",&qu......
  • 建立一个1个单位长度的字符串string c(1,str[i])
    https://www.luogu.com.cn/problem/P1765?contestId=155201`include<bits/stdc++.h>usingnamespacestd;strings[10][4]={{},{},{"a","b","c"},{"d","e","f"},{"g","h&q......
  • 字符串“getline”“fgets”“getchar”
    https://www.luogu.com.cn/problem/P8506?contestId=154692`include<bits/stdc++.h>usingnamespacestd;intmain(){intn;intcount=0;cin>>n;getchar();while(n--){chara[1000];fgets(a,sizeof(a),stdin);intflag=0;for(inti=0;a[i+1]!=......
  • Java_5 字符串
    Java字符串title:(在线学习平台)link:(https://www.acwing.com/)cover:(https://cdn.acwing.com/media/activity/surface/log.png)1.字符与整数的联系——ASCII码每个常用字符都对应一个-128~127的数字,二者之间可以相互转化。注意:目前负数没有与之对应的字符。import......
  • python中利用变量解压列表、元组、字符串、字典、文件对象、迭代器和生成器等序列
    一、如果知道序列中元素的个数,可以直接进行变量赋值。coords=(102,40)lon,lat=coordsprint(lon)print(lat)text="news"a,b,c,d=textprint(a)print(b)print(c)print(d)二、如果不知道序列中元素的个数,可以通过*变量名来代表多个元素的变量,无论序列是什......
  • 【pwn】axb_2019_fmt32 --格式化字符串漏洞进一步利用
    照例检查程序保护情况堆栈不可执行,再导入ida看一下代码逻辑如上图此处代码有格式化字符串漏洞先找出偏移可以发现偏移是8那么我们可以利用printf泄露出libc地址,如何修改printf_got表为system的地址,然后再传入/bin/sh就可以getshellexp:frompwnimport*fromLibcSearc......
  • # WinDbg学习三(字符串通配符语法)
    说明星号(*)代表零个或多个字符。问号(?)代表任意单个字符。包含字符列表的方括号([])代表列表中的任何单个字符。恰好匹配列表中的一个字符。在这些括号内,您可以使用连字符(-)指定范围。例如,Prog[er-t7]am匹配“Progeam”、“Program”、“Progsam”、“Pro......
  • [Python] 基于RapidFuzz库实现字符串模糊匹配
    RapidFuzz是一个用于快速字符串模糊匹配的Python库,它能够快速计算两个字符串之间的相似度,并提供与Fuzzywuzzy(已停用)和TheFuzz(Fuzzywuzzy的升级版)类似的接口。RapidFuzz和TheFuzz功能相似,只是提供的接口不同。RapidFuzz和TheFuzz安装指令如下:pipinstallrapidfuzzpipinstallth......
  • 第十二天:SHELL编程之常见工具、数组及字符串切片
    一、信号捕捉traptrap命令可以捕捉信号,修改信号原来的功能,实现自定义功能#列出所有信号trap-l#进程收到系统发出的指定信号后,将执行自定义指令,而不会执行原操作trap'触发指令'信号#忽略信号的操作trap''信号#恢复原信号的操作trap'-'信号......
  • 字符串算法
    #include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constllN=1e6+10;chars1[N],s2[N];lln1,n2,nt[N],f[N];intmain(){ cin>>(s1+1)>>(s2+1); n1=strlen(s1+1),n2=strlen(s2+1); for(lli=2,j=0;i<=n2;i++){ while(j......