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 ...
随机推荐
- 20140319 const sizeof define 编译时分配内存
1.面试宝典预处理,const,sizeof Define作用定义函数: //用一个宏定义FIND求一个结构体struc里某个变量相对于struc的偏移量,如FIND(student,a)//等于0 ...
- 注意:阿里Druid连接池监控的两个坑
阿里的Druid大家都知道是最好的连接池,其强大的监控功能是我们追求的重要特性.但在实际情况中也有不少坑,说下最近遇到的一个坑吧! 问题1:不断打印error级别的错误日志 session ip ch ...
- 312. 戳气球【困难】【区间DP】
题目链接 有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的气球.每当你戳破一个气球 i 时,你可以获得 nums[left] * ...
- STM32 Keil仿真调试
引用:http://blog.sina.com.cn/s/blog_3c63d2bd0102vt9a.html 问题描述:使用MDK进行软件设计时没有使用ST官方的模板而是手动建立的工程,使用ST官方 ...
- 【学术篇】SDOI2009 最优图像
又是一道辣鸡卡常数题…. luogu上有些题的时限还是有毒的… 最后也只能靠O2过掉了… 不过给我原题当时的2s我随便过给你看嘛, 哪怕评测姬慢50%都没关系的.. 贴一下codevs的截图… 你看最 ...
- flex:1将页面铺满
代码示范: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- drupal7权限控制之-如何访问未发表的node
在某些特殊需求的情况下,会涉及到匿名用户或非node节点所有者,访问未发表的node节点的需求:或者需要根据不同的用户角色,访问不同的内容类型等,如果不想安装node_access等模块的时候,可以在 ...
- Java怎样判断身份证号
判断身份证号是否正确使用的是正则,Java与js中使用正则的方式大差不差,下面是Java通过正则判断身份证号是否正确的 * */ @Test public void cardId() { System ...
- latex 引用文献 bib
study from : https://jingyan.baidu.com/article/925f8cb8bce1f0c0dce0564f.html 寻找文献 谷歌学术 from: https:/ ...
- .Net 动态编译(c# 脚本)
1 用.NET提供的类动态编译代码字符串,生成DLL存于内存中,加载到程序域 2 用反射的方式调用这个DLL 将要被编译和执行的代码读入并以字符串方式保存声明CSharpCodeProvider对象实 ...