UVA - 11536 Smallest Sub-Array(尺取法)
题目:
思路:
读完题之后第一时间想到的是尺取法来做这个题,结果让自己写写崩了,还是练得少!!
到网上搜了一下学习了大佬的标记方法,用一个变量来判断是不是都已经出现,要比每次都判断一下快超多。
代码:
#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define MAX 1e3
#define FRE() freopen("in.txt","r",stdin)
#define FRO() freopen("out.txt","w",stdout)
using namespace std;
typedef long long ll;
typedef pair<int, int> P;
const int maxn = ;
int a[maxn],vis[maxn];
int n,m,k; void init(){
memset(vis,,sizeof(vis));
a[] = ,a[] = ,a[] = ;
for(int i=; i<=n; i++){
a[i] = (a[i-]+a[i-]+a[i-])%m+;
}
} int main(){
// FRE();
int kase=,T;
scanf("%d",&T);
while(T--){
scanf("%d%d%d",&n,&m,&k);
init();
if(k > m || k>n){
printf("Case %d: sequence nai\n",++kase);
continue;
}
int ans = ;
int st=,en=,tot=;
while(en <= n){
int t = a[en++];
vis[t]++;
if(t<=k && vis[t]==) tot++;//标记区间个数get!! while(st<en && tot==k){
ans = min(ans, en-st);
t = a[st++];
vis[t]--;
if(t<=k && vis[t]==) tot--;//标记区间个数
}
//cout<<"en: "<<en<<" st: "<<st<<endl;
}
if(ans>n){
printf("Case %d: sequence nai\n",++kase);
}else{
printf("Case %d: %d\n",++kase,ans);
}
}
return ;
}
UVA - 11536 Smallest Sub-Array(尺取法)的更多相关文章
- UVa 11536 Smallest Sub-Array (水题, 滑动窗口)
题意:给定 n 个由0~m-1的整数组成的序列,输入 k ,问你找出连续的最短序列,使得这个序列含有1-k的所有整数. 析:这个题,很简单么,只要从头开始扫一遍就OK,时间复杂度为O(n). 代码如下 ...
- uva 11536 - Smallest Sub-Array
题目大意:按照题目中的要求构造出一个序列,找出最短的子序列,包含1~k. 解题思路:先根据题目的方法构造出序列,然后用Towpointer的方法,用v[i]来记录当前[l, r]中有几个i:当r移动时 ...
- UVA 11990 `Dynamic'' Inversion CDQ分治, 归并排序, 树状数组, 尺取法, 三偏序统计 难度: 2
题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...
- Unique Snowflakes UVA - 11572 (离散化+尺取法)
Emily the entrepreneur has a cool business idea: packaging and selling snowflakes. She has devised a ...
- 【习题 8-17 UVA - 11536】Smallest Sub-Array
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 尺取法. 考虑一个1..i的窗口. 里面在到达了i位置的时候恰好有1..k这些数字了. 为了更接近答案. 显然可以试着让左端点变成2 ...
- Codeforces Educational Codeforces Round 5 D. Longest k-Good Segment 尺取法
D. Longest k-Good Segment 题目连接: http://www.codeforces.com/contest/616/problem/D Description The arra ...
- hdu5358 First One(尺取法)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud First One Time Limit: 4000/2000 MS (Java/ ...
- 【尺取法】Jurisdiction Disenchantment
[尺取法]Jurisdiction Disenchantment PROBLEM 时间限制: 1 Sec 内存限制: 128 MB 题目描述 The Super League of Paragons ...
- HDU - 6231 K-th Number (2017CCPC哈尔滨站 二分+尺取法)
Alice are given an array A[1..N] with N numbers. Now Alice want to build an array B by a parameter K ...
随机推荐
- c#调用oracle存储过程返回数据集
c#调用oracle存储过程返回数据集 2008-12-20 10:59:57| 分类: net|字号 订阅 CREATE OR REPLACE PACKAGE pkg_tableTypeIS ...
- 利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全)
利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全) 14.4 利用JFreeChart生成折线图 通过JFreeChart插件,既可以生成普通效果的折线图,也可以生成3D效果的折 ...
- POJ1389 Area of Simple Polygons 线段树
POJ1389 给定n个整数点矩形,求面积并. 显然ans必然是整数. 记录若干个事件,每个矩形的左边的竖边记为开始,右边的竖边记为结束. 进行坐标离散化后用线段树维护每个竖的区间, 就可以快速积分了 ...
- JSP-Runood:Eclipse JSP/Servlet 环境搭建
ylbtech-JSP-Runood:Eclipse JSP/Servlet 环境搭建 1.返回顶部 1. Eclipse JSP/Servlet 环境搭建 本文假定你已安装了 JDK 环境,如未安装 ...
- rspec
require 'rails_helper' RSpec.describe Jira, '#set_jira_jlist' do it "this sentence is after it& ...
- recast 生成navmesh主要流程
参考: critterai http://www.critterai.org recast & Detour https://github.com/recastnavig ...
- java 读取word
读取word文件 import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import org ...
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 Minimum Distance in a Star Graph
In this problem, we will define a graph called star graph, and the question is to find the minimum d ...
- Intellij使用心得(四) -- 导入Eclipse的代码格式化文件
https://my.oschina.net/flashsword/blog/137598
- 一个JavaScript贷款计算器
通过本案例,将会学到: . 如何在文档中查找元素 . 如何通过表单input元素来获取用户的输入数据 . 如何通过文档元素来设置HTML内容 . 如何将数据存储在浏览器中 . 如何使用脚本发起HTTP ...