【BZOJ 1398】 1398: Vijos1382寻找主人 Necklace (最小表示法)

1398: Vijos1382寻找主人 Necklace

Time Limit: 5 Sec  Memory Limit: 128 MB
Submit: 308  Solved: 129

Description

给定两个项链的表示,判断他们是否可能是一条项链。

Input

输入文件只有两行,每行一个由0至9组成的字符串,描述一个项链的表示(保证项链的长度是相等的)。

Output

如果两条项链不可能同构,那么输出’No’,否则的话,第一行输出一个’Yes’
第二行输出该项链的字典序最小的表示。 设L = 项链长度,L <= 1000000。

Sample Input

2234342423
2423223434

Sample Output

Yes
2234342423

HINT

Source

 

 

【分析】

  最小表示法。。有点忘了。。

 

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cstring>
 4 #include<iostream>
 5 #include<algorithm>
 6 using namespace std;
 7 #define Maxn 1000010
 8 
 9 char s1[2*Maxn],s2[2*Maxn];
10 int l;
11 
12 int mymin(int x,int y) {return x<y?x:y;}
13 
14 int ffind(char *s)
15 {
16     int i=0,j=1,k=0;
17     while(i+k<=l&&j+k<=l)
18     {
19         if(s[i+k]==s[j+k]) k++;
20         else if(s[i+k]<s[j+k]) j+=k+1,k=0;
21         else i+=k+1,k=0;
22         if(i==j) j++;
23     }
24     return mymin(i,j);    
25 }
26 
27 int main()
28 {
29     scanf("%s%s",s1,s2);
30     l=strlen(s1);
31     for(int i=0;i<l;i++) s1[i+l]=s1[i];
32     for(int i=0;i<l;i++) s2[i+l]=s2[i];
33     int a=ffind(s1),b=ffind(s2);
34     bool ok=1;
35     for(int i=0;i<l;i++) if(s1[a+i]!=s2[b+i]) {ok=0;break;}
36     if(!ok) printf("No\n");
37     else
38     {
39         printf("Yes\n");
40         for(int i=0;i<l;i++) printf("%c",s1[a+i]);
41         printf("\n");
42     }
43     return 0;
44 }
View Code

 

2017-04-17 08:14:10

转载于:https://www.cnblogs.com/Konjakmoyu/p/6721174.html

【完美复现】面向配电网韧性提升的移动储能预布局与动态调度策略【IEEE33节点】(Matlab代码实现)内容概要:本文介绍了基于IEEE33节点的配电网韧性提升方法,重点研究了移动储能系统的预布局与动态调度策略。通过Matlab代码实现,提出了一种结合预配置和动态调度的两阶段优化模型,旨在应对电网故障或极端事件时快速恢复供电能力。文中采用了多种智能优化算法(如PSO、MPSO、TACPSO、SOA、GA等)进行对比分析,验证所提策略的有效性和优越性。研究不仅关注移动储能单元的初始部署位置,还深入探讨其在故障发生后的动态路径规划与电力支援过程,从而全面提升配电网的韧性水平。; 适合人群:具备电力系统基础知识和Matlab编程能力的研究生、科研人员及从事智能电网、能源系统优化等相关领域的工程技术人员。; 使用场景及目标:①用于科研复现,特别是IEEE顶刊或SCI一区论文中关于配电网韧性、应急电源调度的研究;②支撑电力系统在灾害或故障条件下的恢复力优化设计,提升实际电网应对突发事件的能力;③为移动储能系统在智能配电网中的应用提供理论依据和技术支持。; 阅读建议:建议读者结合提供的Matlab代码逐模块分析,重点关注目标函数建模、约束条件设置以及智能算法的实现细节。同时推荐参考文中提及的MPS预配置与动态调度上下两部分,系统掌握完整的技术路线,并可通过替换不同算法或测试系统进一步拓展研究。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值