[nowcoder5668H]Sort the Strings Revision

1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 2000005
4 #define mod 1000000007
5 int t,n,p[N],d[N],st[N],ls[N],rs[N],rk[N];
6 void dfs(int k,int l,int r,int s){
7 if ((p[k]==n)||(l>=r)){
8 for(int i=l;i<=r;i++)rk[i]=s+(i-l);
9 return;
10 }
11 dfs(ls[k],l,k,s+(p[k]%10>d[k])*(r-k));
12 dfs(rs[k],k+1,r,s+(p[k]%10<d[k])*(k-l+1));
13 }
14 int main(){
15 scanf("%d",&t);
16 while (t--){
17 scanf("%d",&n);
18 int p1,p2,p3,p4;
19 scanf("%d%d%d%d",&p1,&p2,&p3,&p4);
20 for(int i=0;i<n;i++)p[i]=i;
21 for(int i=1;i<n;i++){
22 swap(p[p1%(i+1)],p[i]);
23 p1=(1LL*p1*p2+p3)%p4;
24 }
25 int d1,d2,d3,d4;
26 scanf("%d%d%d%d",&d1,&d2,&d3,&d4);
27 for(int i=0;i<n;i++){
28 d[i]=d1%10;
29 d1=(1LL*d1*d2+d3)%d4;
30 if (p[i]%10==d[i])p[i]=n;
31 }
32 st[0]=0;
33 for(int i=0;i<n;i++){
34 int k=st[0];
35 while ((k>0)&&(p[st[k]]>p[i]))k--;
36 if (k)rs[st[k]]=i;
37 if (k<st[0])ls[i]=st[k+1];
38 st[++k]=i;
39 st[0]=k;
40 }
41 dfs(st[1],0,n,0);
42 int s=1,ans=0;
43 for(int i=0;i<=n;i++){
44 ans=(ans+1LL*s*rk[i])%mod;
45 s=s*10000019LL%mod;
46 }
47 printf("%d\n",ans);
48 }
49 }
[nowcoder5668H]Sort the Strings Revision的更多相关文章
- Perl小知识点之排序sort
脚本这种东西,就是要常用,否则一段时间不用就生疏了,因此决定时时记一些小知识点,一来回顾一下,二来需要的时候可以迅速获得提示. Sort by number You could now write a ...
- golang sort
package main import ( "fmt" "strings" "sort" ) type Animals []string f ...
- go排序
补注: 近来又看 go 的排序, 发现以前对 go 的排序理解的有点浅了. go 的排序思路和 c 和 c++ 有些差别. c 默认是对数组进行排序, c++ 是对一个序列进行排序, go 则更宽泛一 ...
- Java学习之字符串练习
1.给定一个字符串数组.按照字典顺序进行从小到大的排序. * 思路: * 1,对数组排序.可以用选择,冒泡都行. * 2,for嵌套和比较以及换位. * 3,问题:以前排的是整数,比较用的比较运算符, ...
- LINQ基础(二)
本文主要介绍LINQ查询操作符 LINQ查询为最常用的操作符定义了一个声明语法.还有许多查询操作符可用于Enumerable类. 下面的例子需要用到LINQ基础(一)(http://www.cnblo ...
- golang 标准库间依赖的可视化展示
简介 国庆看完 << Go 语言圣经 >>,总想做点什么,来加深下印象.以可视化的方式展示 golang 标准库之间的依赖,可能是一个比较好的切入点.做之前,简单搜了下相关的内 ...
- Bandit Wargame Level12 Writeup
Level Goal The password for the next level is stored in the file data.txt, which is a hexdump of a f ...
- float_array.go
) if err != nil { log.Fatalf("Could not parse: %s", s) ret ...
- data.go
{ return ErrList(errs) } return nil }
随机推荐
- VS运行时 /MD、/MDd 和 /MT、/MTd之间的区别
程序运行时出现问题,选择的是Release,win64位的模式,并且已经看到了宏定义NDEBUG,但是程序依然进入上面的部分 解决方案是将属性->C/C++->代码生成器->运行库里 ...
- SpringBoot-语言国际化
在resouce下新建i18ni18n 类似的还有k8s在i18n下新建signIn.properties再新建 signIn_zh_CN.properties此时,iden会帮助合并: 现在可以在这 ...
- C chdir函数
chdir微软官方文档 在制作小游戏时遇到的问题:图片音频等资源文件太多,和exe同一个目录不方便集中管理 整理方案1 首先创建了一个名为"resource"的文件夹,把程序执行过 ...
- 2021能源PWN wp
babyshellcode 这题考无write泄露,write被沙盒禁用时,可以考虑延时盲注的方式获得flag,此exp可作为此类型题目模版,只需要修改部分参数即可,详细见注释 from pwn im ...
- DDD领域驱动设计-概述-Ⅰ
如果我看得更远,那是因为我站在巨人的肩膀上.(If I have seen further it is by standing on ye shoulder of Giants.) ...
- Gitlab Burndown Chart
一.说明 通过调用gitlab api直接获取相应project的所有issues,然后对其进行统计以制作燃尽图 二.方法 1.生成 Personal access token Gitlab > ...
- Scrum Meeting 最终总结
[软工小白菜]Scrum Meeting 最终总结 2020/4/28 一.会议内容 1.工作及计划 组员代号 完成的工作 明日计划 炎龙 1.整合了整个程序,生成了apk并且上传审核 无 风鹰 1. ...
- WiFi模块选型参考
经常会碰到一些关于wifi模块的咨询,很多刚接触wifi模块的设计人员或者用户,只知道提wifi模块,很难提具体的模块要求!希望通过文章的介绍,会做到有的放矢!咨询时一定要搞清楚自己希望使用什么主芯片 ...
- 攻防世界 杂项 5.wireshark-1
题目描述: 黑客通过wireshark抓到管理员登陆网站的一段流量包(管理员的密码即是答案). flag提交形式为flag{XXXX} 看到登录应该想到它是HTTP POST请求,wireshark搜 ...
- nvidia-msi命令解读
nvidia-msi 或者 watch -n 1 nvidia-smi 打印出表格中: 第一栏的Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转 ...