Codeforces Round #401 (Div. 2)
和FallDream dalao一起从学长那借了个小号打Div2,他切ABE我做CD,我这里就写下CD题解,剩下的戳这里
AC:All Rank:33 小号Rating:1539+217->1756
C.Alyona and Spreadsheet
题目大意:给出一个n*m的数字矩阵a,k次询问,每次给li,ri,求是否有一列的a[li][j],a[li+1][j],...a[ri][j]组成一个不下降序列。(n*m<=100,000,k<=100,000)
思路:O(n*m)扫一遍可以预处理出每个ri最小的li,我菜,写了线段树。
#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
inline int read()
{
int x=;char c;
while((c=getchar())<''||c>'');
for(;c>=''&&c<='';c=getchar())x=(x<<)+(x<<)+c-'';
return x;
}
#define MN 100000
#define N 131072
#define INF 0x7FFFFFFF
vector<int> v[MN+];
vector<pair<int,int> > q[MN+];
int t[N*+],ans[MN+];
void change(int k,int x){for(t[k+=N]=x;k>>=;)t[k]=min(t[k<<],t[(k<<)+]);}
int main()
{
int n,m,k,i,j;
n=read();m=read();
for(i=;i<=m;++i)v[].push_back(INF);
for(i=;i<=n;++i)v[i].push_back();
for(i=;i<=n;++i)for(j=;j<=m;++j)v[i].push_back(read());
for(k=read(),i=;i<k;++i)j=read(),q[read()].push_back(make_pair(j,i));
memset(t,,sizeof(t));
for(i=;i<=n;++i)
{
for(j=;j<=m;++j)if(v[i][j]<v[i-][j])change(j,i);
for(j=;j<q[i].size();++j)ans[q[i][j].second]=(t[]<=q[i][j].first);
}
for(i=;i<k;++i)puts(ans[i]?"Yes":"No");
}
D.
题目大意:给N个字符串,从中删掉最少的字符使得字符串按字典序排序。(字符数量<=500,000)
思路:我写了个分治……solve(l,r,p)表示第l个到第r个前p-1个都一样,从后往前找到第一个s[i][p]>s[i+1][p],把第l个到第i个p以后都截掉,然后按第p个字符分成几块继续分治。其实只要从最后一个往前贪心删掉就可以了。
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
#define MN 500000
#define INF 0x7FFFFFFF
string s[MN+];
int L[MN+];
int C(int x,int y){return y<=L[x]?s[x][y]:;}
void solve(int l,int r,int p)
{
int i,j,mn=INF;
for(i=r;i>=l;--i)
{
if(C(i,p)>mn)L[i]=p-;
mn=min(mn,C(i,p));
}
for(i=l;i<=r;i=j)
{
for(j=i;j<=r&&C(i,p)==C(j,p);++j);
if(C(i,p))solve(i,j-,p+);
}
}
int main()
{
int n,i,j;
cin>>n;
for(i=;i<=n;++i)
{
cin>>s[i];
L[i]=s[i].size()-;
}
solve(,n,);
for(i=;i<=n;++i,puts(""))for(j=;j<=L[i];++j)putchar(s[i][j]);
}
Codeforces Round #401 (Div. 2)的更多相关文章
- Codeforces Round #401 (Div. 2) 离翻身就差2分钟
Codeforces Round #401 (Div. 2) 很happy,现场榜很happy,完全将昨晚的不悦忘了.终判我校一片惨白,小董同学怒怼D\E,离AK就差一个C了,于是我AC了C题还剩35 ...
- Codeforces Round #401 (Div. 2) C Alyona and Spreadsheet —— 打表
题目链接:http://codeforces.com/contest/777/problem/C C. Alyona and Spreadsheet time limit per test 1 sec ...
- Codeforces Round #401 (Div. 2) D Cloud of Hashtags —— 字符串
题目链接:http://codeforces.com/contest/777/problem/D 题解: 题意:给出n行字符串,对其进行字典序剪辑.我自己的想法是正向剪辑的,即先对第一第二个字符串进行 ...
- D Cloud of Hashtags Codeforces Round #401 (Div. 2)
Cloud of Hashtags [题目链接]Cloud of Hashtags &题意: 给你一个n,之后给出n个串,这些串的总长度不超过5e5,你要删除最少的单词(并且只能是后缀),使得 ...
- C Alyona and Spreadsheet Codeforces Round #401(Div. 2)(思维)
Alyona and Spreadsheet 这就是一道思维的题,谈不上算法什么的,但我当时就是不会,直到别人告诉了我,我才懂了的.唉 为什么总是这么弱呢? [题目链接]Alyona and Spre ...
- Codeforces Round #401 (Div. 2) A,B,C,D,E
A. Shell Game time limit per test 0.5 seconds memory limit per test 256 megabytes input standard inp ...
- Codeforces Round #401 (Div. 2) A B C 水 贪心 dp
A. Shell Game time limit per test 0.5 seconds memory limit per test 256 megabytes input standard inp ...
- Codeforces Round #401 (Div. 1) C(set+树状数组)
题意: 给出一个序列,给出一个k,要求给出一个划分方案,使得连续区间内不同的数不超过k个,问划分的最少区间个数,输出时将k=1~n的答案都输出 比赛的时候想的有点偏,然后写了个nlog^2n的做法,T ...
- 【贪心】Codeforces Round #401 (Div. 2) D. Cloud of Hashtags
从后向前枚举字符串,然后从左向右枚举位. 如果该串的某位比之前的串的该位小,那么将之前的那串截断. 如果该串的某位比之前的串的该位大,那么之前那串可以直接保留全长度. 具体看代码. #include& ...
随机推荐
- Python实现基于协程的异步爬虫
一.课程介绍 1. 课程来源 本课程核心部分来自<500 lines or less>项目,作者是来自 MongoDB 的工程师 A. Jesse Jiryu Davis 与 Python ...
- 201621123057 《Java程序设计》第13周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 为你的系统增加网络功能(购物车.图书馆管理.斗地主等)-分组完成 为了让你的系统可以被多个用户通过网 ...
- Django 博客
blogproject/blogproject/settings.py ## 其它配置代码... # 把英文改为中文 LANGUAGE_CODE = 'zh-hans' # 把国际时区改为中国时区 T ...
- 数据恢复案例分享:MSSQL 2000 错误823
一.故障描述 MSSQL Server 2000 附加数据库错误823,附加数据库失败.数据库没有备份,不能通过备份恢复数据库,急需恢复数据库中的数据. 二.故障分析SQL Server数据库 823 ...
- LeetCode & Q35-Search Insert Position-Easy
Array Binary Search Description: Given a sorted array and a target value, return the index if the ta ...
- Nginx原理和配置总结
一:前言 Nginx是一款优秀的HTTP服务器和反向代理服务器,除却网上说的效率高之类的优点,个人的切身体会是Nginx配置确实简单而且还好理解,和redis差不多,比rabbitmq好理解太多了: ...
- kubernetes入门(03)kubernetes的基本概念
一.Pod 在Kubernetes集群中,Pod是创建.部署和调度的基本单位.一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个应用的容器.在同一个Pod内部,多个容器共享存储.网络IP,以 ...
- SpringCloud的应用发布(一)SpringCloud的样例工程
前言 这个综合例子创建了 6个微服务应用 一个服务注册中心 SvcReg(EurekaServer),生产中要考虑高可用 一个配置中心 CfgMgr + git目录存储配置(ConfigServer, ...
- Linux下的Shell编程(2)环境变量和局部变量
Shell Script是一种弱类型语言,使用变量的时候无需首先声明其类型. 局部变量在本地数据区分配内存进行存储,这个变量归当前的Shell所有,任何子进 程都不能访问本地变量.这些变量与环境变量不 ...
- servlet filter中使用autowired无法注入
问题: 我们为了避免未经授权的人直接通过url访问我们的页面,配置了如下filter <!-- 登录过滤器 --> <filter> <filter-name>se ...