POJ-3320 Jessica's Reading Problem
来源:互联网 发布:java线程锁 编辑:程序博客网 时间:2024/05/07 10:51
/************************************************* Author :somniloquy* Created Time :2015/10/25 15:55:24 ************************************************/#include <cstdio>#include <algorithm>#include <iostream>#include <cstring>#include <map>#include <set>using namespace std;const int p_max = 1e6 + 5;int page[p_max];int p;int main(void){ while(~scanf("%d", & p)) { set <int> kind; for(int i = 0; i < p; i ++) { scanf("%d", & page[i]); kind.insert(page[i]); } int n = kind.size(); //调用set的用处 就是为了计算书中有多少种知识点 map <int, int> count; //每个知识点出现的次数 int op = 0, ed = 0, ans = p, num = 0; while(1) { while(ed < p && num < n) //尾光标范围在0 ~ p - 1 当num == n的时候弹出 { if(count[page[ed]] == 0) //如果有新的知识点 num ++; //当前总数 +1 count[page[ed]] ++; //知识点次数 +1 ed ++; //ed向后移动 } if(num < n) //如果经过循环到ed == p - 1都不能使 num == n 就弹出 break; ans = min(ans, ed - op); //ans 取最小 count[page[op]] --; //头光标所指的页数后移(去掉当前页) if(count[page[op]] == 0) //如果归零 则当前总数-1 num --; op ++; //头光标后移 } printf("%d\n", ans); } return 0;}
题目:
某人读一本书,要看完所有的知识点,这本书共有P页,第i页恰好有一个知识点ai,(每一个知识点都有一个整数编号)。全书同一个知识点可能会被提到多次,他希望阅读其中一些连续的页把所有知识点都读到,给定每页所读到的知识点,求最少的阅读页数。
题解:
尺取法。
0 0
- POJ:3320 Jessica's Reading Problem
- poj 3320 Jessica's Reading Problem
- poj 3320 Jessica's Reading Problem
- POJ-3320-Jessica's Reading Problem
- POJ 3320 Jessica's Reading Problem
- poj 3320 Jessica's Reading Problem
- Jessica's Reading Problem POJ 3320
- POJ 3320 Jessica's Reading Problem
- POJ 3320 Jessica's Reading Problem
- POJ 3320 Jessica's Reading Problem
- POJ-3320 Jessica's Reading Problem
- poj 3320 Jessica's Reading Problem
- POJ 3320 Jessica's Reading Problem
- poj 3320 Jessica's Reading Problem
- POJ 3320 Jessica's Reading Problem
- poj-3320-Jessica's Reading Problem
- POJ 3320 Jessica's Reading Problem
- poj 3320 Jessica's Reading Problem
- 持续迭代与持续集成
- 参数化
- 带抽象方法的枚举
- 对mac系统的初步认识
- uft参数化
- POJ-3320 Jessica's Reading Problem
- BaseDaoImpl得到泛型化超类
- hibernate 的hibernate.cfg.xml标准配置文档
- 事件驱动模型
- git:fatal: Not a git repository (or any of the parent directories): .git
- 在android中使用HTTPClient以post方法发送二进制文件
- Struts2工作原理
- 【最大子矩阵和】poj 1050 To the Max
- 周赛 4 【kMP&&回文串】