NYOJ 1340 JOINTW的数量问题
来源:互联网 发布:阿里云 华北5 速度 编辑:程序博客网 时间:2024/06/05 23:55
JOINTW的数量问题
时间限制:1000 ms | 内存限制:65535 KB
难度:1
- 描述
- 字符串JOINTOWWW中包含了三个单词“JOINTW”,其中第一个JOINTW是第1位(J),第2位(O),第3位(I),第4位(N),第5位(T),第7位(W);第二个JOINTW是第1位(J),第2位(O),第3位(I),第4位(N),第5位(T),第8位(W);第三个JOINTW是第1位(J),第2位(O),第3位(I),第4位(N),第5位(T),第9位(W);现给定字符串,问一共可以形成多少个JOINTW?
- 输入
- 输入格式:
输入只有一行,包含一个字符串,长度不超过500,只包含J、O、I 、N、T、W 6 种字母。 - 输出
- 输出格式:
在一行中输出给定字符串中包含多少个JOINTW。 - 样例输入
JOINTOWNJOINTTOWNNNJOINNTTWWNN
- 样例输出
128
- 提示
无需多组输入
题目意思:让你在输入的字符串里找到有多少个JOINTW的子序列,注意是子序列
这道题一开始想用动态规划的方法,思考一下找到递推公式dp[i][j] = dp[i][j-1] + dp[i-1][j-1] a[i] == b[j-1]
dp[i][j] = dp[i][j-1] a[i] != b[j-1]
#include<stdio.h>#include<iostream>#include<string.h>using namespace std;int main() { char a[10] = " JOINTW", b[505]; long long dp[10][505]; cin >> b+1; memset(dp, 0, sizeof(dp)); int len = strlen(b+1); for (int j = 0; j <= len; j++){ dp[0][j] = 1; } for (int i = 1; i <= 6; i++) for (int j = 1; j <= len; j++) { if(a[i] == b[j]) dp[i][j] = dp[i][j-1] + dp[i-1][j-1]; else dp[i][j] = dp[i][j-1]; } printf("%lld\n", dp[6][len]);}
后来发现有更简单的办法从前往后看
每个O对应的JO组合是前面J的数量
每个I对应的JOI组合是I之前的JO组合的数量
每个N对应的JOIN组合是N之前的JOI组合的数量
....
每个W对应的JOINTW组合是W之前的JOINT组合的数量
#include<stdio.h>#include<string.h>int main() { char s[505]; long long J = 0, O = 0, I = 0, N = 0, T = 0, W = 0; scanf("%s", s); for(int i = 0; i < strlen(s); i++) { if(s[i] == 'J') { J++; } else if(s[i] == 'O') { O += J; } else if(s[i] == 'I') { I += O; } else if(s[i] == 'N') { N += I; } else if(s[i] == 'T') { T += N; } else if(s[i] == 'W') { W += T; } } printf("%lld\n", W); }
注意需要用long long~
阅读全文
0 0
- NYOJ 1340 JOINTW的数量问题
- NYOJ核桃的数量
- nyoj-972-核桃的数量
- NYOJ--972 核桃的数量
- NYOJ 972 核桃的数量
- nyoj-648-数字1的数量
- NYOJ 972(蓝桥杯) 核桃的数量
- NYOJ 972 核桃的数量(蓝桥杯)
- NYOJ 648 数字1的数量
- nyoj-648-数字1的数量
- NYOJ 972 核桃的数量 (最小公倍数)
- NYOJ 972 核桃的数量【最小公倍数】
- nyoj-1124-数量
- Linux系统的文件句柄数量问题
- hadoop map数量太少的问题
- Linux系统的文件句柄数量问题
- Linux系统的文件句柄数量问题
- 关于reduce的数量设置问题
- 支付宝支付集成
- 使用MyBatis Generator自动生成代码生成器插件
- 目录树、Webstrom快捷键、Web请求响应模型、软件开发明明规则
- Java基础 时间
- 7号
- NYOJ 1340 JOINTW的数量问题
- 人人都是艺术家!谈谈那些奇怪的字符
- HTML框架集与布局
- 面向对象:但盼风雨来,能留你在此
- <table>表格标签
- 实体字符
- Capstone训练营第三天
- Android多线程--IntentService的使用及原理
- 表单标签<form>:表单的作用是收集信息