19-11-05-Night
我就是不行。
ZJ:
好像是因为郁闷了才咕掉的……
33
|
Miemeng | 30
00:01:34
|
40
00:01:46
|
0
00:01:22
|
70
00:01:46
|
不记得当时怎么想的
T1只会暴力。
T2也是暴力。
T3连暴力都写错……
Tj解:
存个代码吧……
T1:
#include <iostream>
#include <cstring>
#include <cstdio>
#define N 5555555
#define LL long long using namespace std; int pn;
int arr[N];
int maxv,maxxv;
LL mxt,mxxt;
LL ans=0;
struct Myqueue{
int A[2*N],f,b;
void clear(){f=b=0;}
void push(const int k){A[b++]=k;}
void pop_front(){f++;}
void pop_back(){b--;}
int& front(){return A[f];}
int& back(){return A[b-1];}
bool empty(){return f==b;}
int size(){return b-f;}
}q,id,sam;
int main(){
#ifndef LOCAL
freopen("jolyne.in" ,"r",stdin);
freopen("jolyne.out","w",stdout);
#endif
cin.sync_with_stdio(false);
cin>>pn;
for(int i=1;i<=pn;i++){
cin>>arr[i];
if(arr[i]>maxv){
maxxv = maxv;
maxv = arr[i];
}
else if(arr[i]!=maxv && arr[i]>maxxv){
maxxv = arr[i];
}
}
// cout<<maxv<<" "<<maxxv<<endl;
for(int i=1;i<=pn;i++){
if(maxv == arr[i]) mxt ++;
if(maxxv == arr[i]) mxxt++;
}
// cout<<mxt<<" "<<mxxt<<endl;
for(int i=1;i<=pn;i++){
while(!q.empty() && arr[i] > q.back()){
q.pop_back();
id.pop_back();
sam.pop_back();
}
if(!q.empty() && q.back()==arr[i])
sam.push(sam.back()+1);
else sam.push(1);
id.push(i);
q .push(arr[i]);
}
for(int i=1;i<=pn;i++){
int is_s=0;
while(!q.empty() && id.front()<=i){
is_s=arr[i]==q.front();
q.pop_front();
id.pop_front();
sam.pop_front();
}
while(!q.empty() && q.back() < arr[i]){
q.pop_back();
id.pop_back();
sam.pop_back();
ans++;
}
if(!q.empty() && q.back() == arr[i])
sam.push(sam.back()+1);
else sam.push(1);
id.push(pn+i);
q.push(arr[i]);
if(q.size()==1 || q.front() != q.back())
is_s=0;
int va=sam.back();
sam.pop_back();
sam.push(va-is_s);
ans+=sam.back()-1;
if(q.front() != arr[i]){
ans++;
}
}
if(mxt==1)ans-=mxxt;
else ans-=mxt*(mxt-1)/2;
cout<<ans<<endl;
}
T2:
简单线性dp,作为dpsb又跪了=。=
#include <iostream>
#include <cstring>
#include <cstdio>
#define N 1111111
#define LL long long using namespace std; const int Mod=1e9+7;
int sl;
int arr[N];
LL dp[N],sum[N]; int main(){
#ifndef LOCAL
freopen("rideon.in" ,"r",stdin);
freopen("rideon.out","w",stdout);
#endif
cin.sync_with_stdio(false);
cin>>sl;
for(int i=1;i<=sl;i++)
cin>>arr[i];
for(int i=1;i<=sl;i++){
dp[i] =(sum[i-1]%Mod-sum[arr[i]-1]%Mod+Mod+2)%Mod;
sum[i]=(sum[i-1]+dp[i])%Mod;
}
cout<<sum[sl]<<endl;
}
19-11-05-Night的更多相关文章
- Update 19.11 for Azure Sphere
今天,微软发布了面向Azure Sphere的19.11更新,其主要亮点就是加入了对开发工具Visual Studio Code和Linux开发环境的支持.具体来讲,本次更新包含3个部分: 1. Az ...
- 2021.11.05 eleveni的水省选题的记录
2021.11.05 eleveni的水省选题的记录 因为eleveni比较菜,但是eleveni不想写绿题(总不能说是被绿题虐得不想写),eleveni决定继续水noip原题. --实际上菜菜的el ...
- 《剑指offer》数学题及其它 (牛客11.05)
比较多的思维题,涉及位运算.快速幂.二进制.约瑟夫问题.队列.贪心.dp等等. 难度 题目 知识点 ☆ 12.数值的整数次方 细节,快速幂 ☆☆ 47.求1+2+3+···+n 思维发散 ☆☆ 48. ...
- Fibonacci Again 分类: HDU 2015-06-26 11:05 13人阅读 评论(0) 收藏
Fibonacci Again Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot ...
- Visual Assist X 10.8.2052的Crack破解补丁. 2014.11.05 (General release.)
VA小组立即更新频率似有些放缓几乎,版本号都是2个月才更新一次,而这次的更新幅度也还是比較大的,新增了6个特性,而且修正和20余处大大小小的问题,而且也是正式发行版,推荐更新. 对于破解补丁还是老规矩 ...
- [ASE][Daily Scrum]11.05
在昨天的课程之后经过讨论进行了初步的分工,并制定出了我们的一个两周计划. 尚没有和老师讨论,已经询问了时间没有收到回复,等老师那边讨论过后我会在更新这个部分. 第一阶段的目标是用户能够在一个空白的地图 ...
- HDU6029 Happy Necklace 2017-05-07 19:11 45人阅读 评论(0) 收藏
Happy Necklace Time Limit: ...
- [软件工程基础]2017.11.05 第九次 Scrum 会议
具体事项 项目交接燃尽图 每人工作内容 成员 已完成的工作 计划完成的工作 工作中遇到的困难 游心 #10 搭建可用的开发测试环境:#9 阅读分析 PhyLab 后端代码与文档:#8 掌握 Larav ...
- hdu 1053 (huffman coding, greedy algorithm, std::partition, std::priority_queue ) 分类: hdoj 2015-06-18 19:11 22人阅读 评论(0) 收藏
huffman coding, greedy algorithm. std::priority_queue, std::partition, when i use the three commente ...
- Case of the Zeros and Ones 分类: CF 2015-07-24 11:05 15人阅读 评论(0) 收藏
A. Case of the Zeros and Ones time limit per test 1 second memory limit per test 256 megabytes input ...
随机推荐
- React:styled-components
``是es6的Template Literals(模版字符串),许多人对这个一知半解,今天在这边总结下: `${expression}`(表达式插补) var x; var y; sth.innerH ...
- Python:获取当前py的文件名
采用pathlib库 from pathlib import Path Path(__file__).name
- scikit-learn 应用
首先是sklearn的官网:http://scikit-learn.org/stable/ 在官网网址上可以看到很多的demo,下边这张是一张非常有用的流程图,在这个流程图中,可以根据数据集的特征,选 ...
- 使用idea从svn检出项目
1.创建空的工程 2. 3. 编辑项目进行提交svn服务器进行自动整合
- Laravel Illuminate\Http\Exceptions\PostTooLargeException
出错原因是: 请求的post的数据比 php.ini设定的 post_max_size大的原因 解决方法: 增加php.ini中 post_max_size和upload_max_filesize的设 ...
- [转]Redis实现缓存,你应该懂的哪些思路!
场景一:类似于微博,实现关注和被关注功能. 思路: 对每个用户使用两个集合类型键,用来存储关注别人的用户和被该用户关注的用户.当用户A关注用户B的时候,执行两步操作: sadd user:A B sa ...
- Unix、Linux、Windows操作系统的区别
1.操作区别 原文地址: https://blog.csdn.net/qq_41026740/article/details/96018808 linux区分大小写,windows在dos界面命令下不 ...
- Windows netstat
{ 显示协议统计信息和当前 TCP/IP 网络连接. NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [int ...
- 爬虫-Requests 使用入门
requests 的底层实现其实就是 urllib json在线解析工具 ---------------------------------------------- Linux alias命令用于设 ...
- JavaScript——基本语法
单词掌握 BOM 浏览器对象模型 DOM 文档对象模型 document 文档 break 中断 continue 继续 1.js脚本位置 通常可以在三个地方编写js脚本代码,一是在网页文件的< ...