Genome Evolution uvalive5052
来源:互联网 发布:云计算和大数据年收入 编辑:程序博客网 时间:2024/06/07 01:00
题意:
题目没搞清楚,结果卡了好久
题目求a,b连续的数字相同(注意不是顺序相同)的子集的个数
思路:
第一个串作为模板, 记录每个位置的数字的值,然后第二个串记录每个值的位子,这么做的目的是为了计算在扫描过的模板串内的字母在第二个串内的长度(通过最大最小位置相减)
如果长度与模板串相同,那么一定是一样的,即所有在最小位置之前的都不在串内,所有大于最大位置的都不再串内
代码:
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int maxn = 3005;int n;int mod[maxn], num[maxn];int main() { while(scanf("%d", &n) != EOF && n) {for(int i=1; i<=n; i++) {scanf("%d", &mod[i]);}int x;for(int i=1; i<=n; i++) {scanf("%d", &x);num[x] = i;}int ans = 0;for(int i=1; i<=n; i++) {int l = num[mod[i]], r=num[mod[i]];int c=1;for(int j=i+1; j<=n; j++) {if(l>num[mod[j]]) l = num[mod[j]];if(r<num[mod[j]]) r = num[mod[j]];c++;if(r-l+1 == c) ans++;}}printf("%d\n", ans);}return 0;}
0 0
- Genome Evolution uvalive5052
- UVALive5052 Genome Evolution(想法题)
- Genome Evolution LA5052
- UvaLive-5052-Genome Evolution
- UVALive - 5052 Genome Evolution
- UVa 1481 - Genome Evolution
- LA 5052 Genome Evolution -
- LA 5052 Genome Evolution
- UVALive - 5052 Genome Evolution 贪心
- Uva LA 5052 Genome Evolution
- LA 5052 Genome Evolution (思维)
- UVA 1481 - Genome Evolution(枚举技巧)
- uva 1481 - Genome Evolution(暴力)
- UVA - 1481 Genome Evolution 公式+二分
- UVA 1481 Genome Evolution(高效算法优化)
- UVa 1481 Genome Evolution 解题报告(枚举)
- UVaLive LA 5052 UVa 1481 - Genome Evolution (很巧妙的思维)
- evolution
- Windows 7(64位)搭建Python开发环境
- Android消息机制之Handler
- Node.js调试工具之node-inspector
- MFC Tap激活窗口
- Android错误
- Genome Evolution uvalive5052
- DLL的概念、分类、调用,DLL如何导出函数、变量和类
- C++第一次上机实验报告—01
- 数值统计
- 数的读法
- 我的第一次C++试验
- genstrings iOS国际化语言支持
- TCP状态图 全
- 九度OJ 1491-1500(5/10)