Wannafly summer camp Day2I(思维)
#include<bits/stdc++.h>
using namespace std;
int a[1000007],b[1000007],c[1000007];
int find_max(int lll,int rrr,int lenn){
int maxnn=0;
int summ=0;
for(int i=lll;i<=rrr;i++){
maxnn=max(maxnn,c[i]);
if(maxnn==lenn+i-lll)//这一段可以经过排序满足题意
summ++;
}
return summ;
}
int divide(int l,int r){
int num=1;
int len=r-l+1;
int ll=1;
for(int i=l;i<=r;i++){
c[i-l+1]=a[i]-l+1;//对于这一段进行操作,每一段的值都是l到r之间的值,全部减去l-1
}
int minn=0;
for(int i=1;i<=len;i++){
if(i==1)
minn=c[1];
else
minn=min(minn,c[i]);
if(minn==len+1-i){//这一段可以和另一半交换
if(ll==1&&i==len)
continue;//不可交换串
if(ll==1||i==len)
num=max(2,num);//至少可以分成两串
else{
int xx=find_max(ll,i,len-i+1);//边上两串交换,中间串尽可能分割
num=max(xx+2,num);
}
ll=i+1;//下一段的左端点
}
}
return num;
}
int main(){
int n,k;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
scanf("%d%d",&n,&k);
int maxn=0;
int sum=0;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
maxn=max(maxn,a[i]);
if(maxn==i)//如果最大值和i相等,说明从上一个b[i]+1到i之间的串是可以经过排序满足题意的
b[i]=i,sum++;//如果sum已经达到k了,就无需去交换操作了
}
int ans=sum;
int flag=1;
if(ans>=k)
printf("Yes");
else{
for(int i=1;i<=n;i++){
if(b[i]==i){
int x=divide(flag,i)-1;//看看每一段中间经过交换操作能多出几段
ans=max(ans,sum+x);
flag=i+1;//下一段的左端点
}
}
if(ans>=k)
printf("Yes");
else
printf("Poor Simon");
}
return 0;
}
//通过对一段l到r的串进行构造和思考,可以发现满足题意都是l到r之间值都为l到r之间的
//一段想要通过交换得到更多段,需要把中间隔成若干尽可能多的段,两端的段交换,中间的分段,可以使段尽可能的多
Wannafly summer camp Day2I(思维)的更多相关文章
- 2019 wannafly winter camp day 3
2019 wannafly winter camp day 3 J 操作S等价于将S串取反,然后依次遍历取反后的串,每次加入新字符a,当前的串是T,那么这次操作之后的串就是TaT.这是第一次转化. 涉 ...
- 2019 wannafly winter camp
2019 wannafly winter camp Name Rank Solved A B C D E F G H I J K day1 9 5/11 O O O O O day2 5 3/11 O ...
- 2020 CCPC Wannafly Winter Camp Day1 C. 染色图
2020 CCPC Wannafly Winter Camp Day1 C. 染色图 定义一张无向图 G=⟨V,E⟩ 是 k 可染色的当且仅当存在函数 f:V↦{1,2,⋯,k} 满足对于 G 中的任 ...
- Wannafly summer camp Day6 - D 区间权值
这道题实在是不该,我在化式子的时候,多此一举,把式子进行累加,导致自己当时化的式子是错的,这样导致自己卡了很久,也没想到好的思路,赛后重新分析一波,感觉巨™简单...难受的一逼. 这道题的关键在于,W ...
- Wannafly Winter Camp 2019.Day 8 div1 I.岸边露伴的人生经验(FWT)
题目链接 \(Description\) 给定\(n\)个十维向量\(\overrightarrow{V_i}=x_1,x_2,...,x_{10}\).定义\(\overrightarrow{V}= ...
- Wannafly Winter Camp 2019.Day 8 div1 E.Souls-like Game(线段树 矩阵快速幂)
题目链接 \(998244353\)写成\(99824435\)然后调这个线段树模板1.5h= = 以后要注意常量啊啊啊 \(Description\) 每个位置有一个\(3\times3\)的矩阵, ...
- 2018 Wannafly summer camp Day8--连通块计数
连通块计数 描述 题目描述: 小 A 有一棵长的很奇怪的树,他由 n 条链和 1 个点作为根构成,第 i条链有 ai 个点,每一条链的一端都与根结点相连. 现在小 A 想知道,这棵长得奇怪的树有多少 ...
- 2018 Wannafly summer camp Day2--Utawarerumono
Utawarerumono 描述 题目描述: 算术是为数不多的会让久远感到棘手的事情.通常她会找哈克帮忙,但是哈克已经被她派去买东西了.于是她向你寻求帮助. 给出一个关于变量x,y的不定方程ax+by ...
- 2018 Wannafly summer camp Day2--New Game!
New Game! 描述 题目描述: Eagle Jump公司正在开发一款新的游戏.泷本一二三作为其员工,获得了提前试玩的机会.现在她正在试图通过一个迷宫. 这个迷宫有一些特点.为了方便描述,我们对这 ...
随机推荐
- JavaScript 的 async/await
随着 Node 7 的发布,越来越多的人开始研究据说是异步编程终级解决方案的 async/await. 异步编程的最高境界,就是根本不用关心它是不是异步. async 函数就是隧道尽头的亮光,很多人认 ...
- CDN存储和加速静态文件是什么回事(整理)(CDN是什么)
CDN存储和加速静态文件是什么回事(整理)(CDN是什么) 一.总结 一句话总结: 内容分发网络:Content Delivery Network:依靠网络中的各个节点,就近发放静态资源. CDN的全 ...
- Mysql: 强制走索引:mysql between 日期索引 索引问题-日期索引使用
Mysql: mysql between 日期索引 索引问题-日期索引使用 表结构: dep_date dep arr 联合索引: ind_coll_date_route (dep_date ,de ...
- 双系统重装win7和ubuntu修复win7引导方法介绍(来源百度经验)
很多朋友喜欢为电脑安装win7和ubuntu双系统,当我们重装双系统时,可能会出现win7引导不见的情况,接下来就告诉大家双系统重装win7和ubuntu修复win7引导的方法. 1.win7和ubu ...
- 七 Django框架,models.py模块,数据库操作——F和Q()运算符:|或者、&并且——queryset对象序列化
F()可以将数据库里的数字类型的数据,转换为可以数字类型 首先要导入 from django.db.models import F from django.shortcuts import rende ...
- CodeForces - 1017 C. The Phone Number(数学)
Mrs. Smith is trying to contact her husband, John Smith, but she forgot the secret phone number! The ...
- POJ-2564 01背包问题
#include"cstdio" #include"cstring" #include"algorithm" using namespace ...
- 【QT】对Qt项目开发中遇到的问题的总结
1. QMessageBox中文乱码 这里的中文乱码是指只有QMessageBox才出现中文乱码,其他都可以正常使用的情况.有些博客中提到使用QString::fromUtf8()函数, 实测有些情况 ...
- 51nod 1450 闯关游戏——期望dp
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1450 想了半天,不知道不能走的状态(即最后不足m个的状态)怎么办. ...
- Centos6.5 安装pip
1.下载 sudo wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate 2.安装 python get-pip.py 参 ...