博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Reverse and Compare(DP)
阅读量:6149 次
发布时间:2019-06-21

本文共 1690 字,大约阅读时间需要 5 分钟。

Reverse and Compare


Time limit : 2sec / Memory limit : 256MB

Score : 500 points

Problem Statement

You have a string A=A1A2…An consisting of lowercase English letters.

You can choose any two indices i and j such that 1≤ijn and reverse substring AiAi+1…Aj.

You can perform this operation at most once.

How many different strings can you obtain?

Constraints

  • 1≤|A|≤200,000
  • A consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

A

Output

Print the number of different strings you can obtain by reversing any substring in A at most once.


Sample Input 1

Copy
aatt

Sample Output 1

Copy
5

You can obtain aatt (don't do anything), atat (reverse A[2..3]), atta (reverse A[2..4]), ttaa (reverse A[1..4]) and taat (reverse A[1..3]).


Sample Input 2

Copy
xxxxxxxxxx

Sample Output 2

Copy
1

Whatever substring you reverse, you'll always get xxxxxxxxxx.


Sample Input 3

Copy
abracadabra

Sample Output 3

Copy
44 //很简单的一道DP,但是难想到,想到极其简单 dp[i]为前 i 个数的不同串数的话,dp[i] = dp[i-1] + sum[ str[j]!=str[i] ] (1<=j
1 #include 
2 #include
3 #include
4 using namespace std; 5 #define LL long long 6 #define MX 200500 7 8 LL dp[MX]; 9 LL num[26];10 char s[MX];11 12 int main()13 {14 scanf("%s",s+1);15 int len = strlen(s+1);16 dp[0]=1;17 for (int i=1;i<=len;i++)18 {19 dp[i]=dp[i-1];20 for (int j=0;j<26;j++)21 {22 if (s[i]=='a'+j) continue;23 dp[i] += num[j];24 }25 num[ s[i]-'a' ]++;26 }27 printf("%lld\n",dp[len]);28 return 0;29 }
View Code

 

 

转载于:https://www.cnblogs.com/haoabcd2010/p/7439534.html

你可能感兴趣的文章
跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
查看>>
js时间和时间戳之间如何转换(汇总)
查看>>
js插件---图片懒加载echo.js结合 Amaze UI ScrollSpy 使用
查看>>
java中string和int的相互转换
查看>>
P1666 前缀单词
查看>>
HTML.2文本
查看>>
Ubuntu unity安装Indicator-Multiload
查看>>
解决Eclipse中新建jsp文件ISO8859-1 编码问题
查看>>
7.对象创建型模式-总结
查看>>
1、块:ion-item
查看>>
【论文阅读】Classification of breast cancer histology images using transfer learning
查看>>
移动端处理图片懒加载
查看>>
jQuery.on() 函数详解
查看>>
谈缓存和Redis
查看>>
【转】百度地图api,根据多点注标坐标范围计算地图缩放级别zoom自适应地图
查看>>
用户调研(补)
查看>>
ExtJS之开篇:我来了
查看>>
☆1018
查看>>
oracle 去掉空格
查看>>
6.13心得
查看>>