jzoj6312-Lottery【dp,前缀和】

正题


题目大意

给出一个长度为nnn的序列aaa和数字lll,定义两个长度为lll的区间[l1,r1][l_1,r_1][l1,r1][l2,r2][l_2,r_2][l2,r2]的距离为有多少个不相同的数字。

然后有qqq个询问kik_iki,要求输出有多少对距离为kik_iki的区间。


解题思路

我们发现若我们求出了[l1,r1][l_1,r_1][l1,r1][l2,r2][l_2,r_2][l2,r2]的距离,就可以O(1)O(1)O(1)求出[l1+1,r1+1][l_1+1,r_1+1][l1+1,r1+1][l2+1,r2+1][l_2+1,r_2+1][l2+1,r2+1]的距离(两个ififif即可)。

我们可以枚举计算的区间对的位置差

所以我们可以用ansi,jans_{i,j}ansi,j表示区间[i,i+l−1][i,i+l-1][i,i+l1]有多少个与其距离为jjj的区间。然后做个前缀和即可。

时空间复杂度都是O(n2)O(n^2)O(n2)。我们发现空间复杂度并不能胜任,所以我们可以将ansi,jans_{i,j}ansi,jjjj的意义变为有多少个与其距离为kjk_jkj的区间。

然后空间复杂度O(nq)O(nq)O(nq)


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=11000;
int n,q,a[N],x[N],num[N],ans[N][110],L;
bool v[N];
int main()
{freopen("lottery.in","r",stdin);//freopen("lottery.out","w",stdout);scanf("%d%d",&n,&L);for(int i=1;i<=n;i++)scanf("%d",&a[i]);scanf("%d",&q);for(int i=1;i<=q;i++)scanf("%d",&x[i]),v[x[i]+1]=1;num[0]=1;for(int i=1;i<=n;i++)num[i]=num[i-1]+v[i];for(int l=1;l<=n;l++){int dis=0;if(l+L>n) break; for(int i=1;i<=L;i++)if(a[i]!=a[i+l]) dis++;ans[1][num[dis]]++;ans[1+l][num[dis]]++;for(int i=2;i<=n-L+1;i++){int j=i+l;if(j>n-L+1) break;if(a[i-1]!=a[j-1]) dis--;if(a[i+L-1]!=a[j+L-1]) dis++;ans[i][num[dis]]++;ans[j][num[dis]]++;}}for(int i=1;i<=num[n];i++)for(int j=1;j<=n;j++)ans[j][i]+=ans[j][i-1];for(int i=1;i<=q;i++){for(int j=1;j<=n-L+1;j++)printf("%d ",ans[j][num[x[i]]]);putchar('\n');}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

修复.NET的HttpClient

早在2016年我们就报道过 &#xff0c;.NET的HttpClient存在一些问题。随着.NET Core 2.1中HttpClientFactory的引入&#xff0c;其中部分问题已经得到缓解。HttpClient的根本问题是&#xff0c;每次调用资源好像都应该在使用后立即释放。在现实中&#xff0c;那意味着每个目标服…

阿里云OSS存储

阿里云OSS存储,文件上传与文件删除 maven依赖&#xff1a; <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version></dependency> 代码&#xff1a; package co…

欢乐纪中A组赛【2019.8.20】

前言 Rank1???Rank1???Rank1??? 成绩 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC111(J−3)WYC(J-3)WYC(J−3)WYC145145145100100100000454545212121(J−3)ZYC(J-3)ZYC(J−3)ZYC636363383838000252525353535(J−3)XXY(J-3)XXY(J−3)XXY45454500000045454…

Asp.Net Core2.0 基于QuartzNet任务管理系统

Quartz.NET官网地址&#xff1a;https://www.quartz-scheduler.net/Quartz.NET文档地址&#xff1a;https://www.quartz-scheduler.net/documentation/index.htmlQuartz.NET是一个开源的作业调度框架&#xff0c;是OpenSymphony 的 Quartz API的.NET移植&#xff0c;它用C#写成…

jzoj6313-Maja【dp】

正题 题目大意 n∗mn*mn∗m的格子&#xff0c;从(A,B)(A,B)(A,B)出发&#xff0c;走KKK步&#xff0c;然后要求回到(A,B)(A,B)(A,B)&#xff0c;求路径最大价值(可以重复经过一个点&#xff0c;但不能停留)。 解题思路 我们可以将回路转换为一条K2\frac{K}{2}2K​的路径&#…

64位的Mac OS X也有Windows.Forms了

Mono长期以来一直为Linux、Mac和Windows提供Windows.Forms的纯C#实现。随着技术潮流的变化&#xff0c;Mono的Windows.Forms平台仍然没有得到很好的发展&#xff0c;还只是各种第三方库和应用程序的依赖&#xff0c;这使得它的重要性超过了那些基于WinForms的应用程序。Mono默认…

java 集合总结

一、集合类型 &#xff08;1&#xff09;集合 List Queue Set Map List Queue Set 实现Collection接口 &#xff08;2&#xff09;Collections工具类 reverse(List list)&#xff1a;反转 shuffle(List list),随机排序 sort(List list, Comparator c);定制排序&#…

jzoj6316-djq的朋友圈【状压dp】

正题 题目大意 有盟友和情敌关系&#xff0c;情敌的情敌是朋友之类的规则&#xff0c;然后如果一个人和111的关系已经确定&#xff0c;以后都不会有任何影响&#xff0c;然后求一个序列&#xff0c;要求111的盟友最大。 解题思路 定义与111直接连边的是AAA类点&#xff0c;不…

.Net 4.X 提前用上 .Net Core 的配置模式以及热重载配置

1. 前言在提倡微服务及 Serverless 越来越普及的当下&#xff0c;传统 .Net 应用的配置模式往往依赖于一个名为 web.config 的 XML 文件&#xff0c;在可扩展性和可读性与时代脱节了。当然&#xff0c;我不会怂恿一下子把所有应用迁移到 .Net Core 上&#xff0c;本文将在尽量不…

P4764-[CERC2014]Pork barrel【主席树,LCT,最小生成树】

正题 题目链接:https://www.luogu.org/problem/P4764 题目大意 给出一张图&#xff0c;若干个询问&#xff0c;每个询问求只使用权值在[L,R][L,R][L,R]这个范围内的边组成的最小生成树权值和&#xff0c;强制在线。 解题思路 我们先考虑LLL固定&#xff0c;这时我们发现我们…

C# 枚举特性 FlagAttribute 的应用

写在前面枚举Enum 全称(Enumeration)&#xff0c;即一种由一组称为枚举数列表的命名常量组成的独特类型。可以看出枚举的出现是为了使我们可以在程序中方便的使用一些特定值的常量&#xff0c;一般的使用大家都比较熟悉&#xff0c;本文主要介绍枚举的特性 FlagAttribute。Flag…

jzoj2908,P1527-[集训队互测 2012]矩阵乘法【整体二分,二维树状数组】

正题 题目链接:https://www.luogu.org/problem/P1527 题目大意 给出一个矩阵&#xff0c;每个询问求子矩阵中的第kkk小数。 解题思路 我们发现我们对于每个询问我们可以二分答案&#xff0c;然后查找该子矩阵中有多少个数≤mid\leq mid≤mid来判断。 但是这样时间复杂度和空…

重温.NET下Assembly的加载过程

最近在工作中牵涉到了.NET下的一个古老的问题&#xff1a;Assembly的加载过程。虽然网上有很多文章介绍这部分内容&#xff0c;很多文章也是很久以前就已经出现了&#xff0c;但阅读之后发现&#xff0c;并没能解决我的问题&#xff0c;有些点写的不是特别详细&#xff0c;让人…

jzoj3410-[GDOI2014模拟]Tree【最小生成树,贪心】

正题 题目大意 在一张图中选择一颗生成树使得边权的方差最小。 解题思路 我们很容易想到一种贪心&#xff0c;那就是在按照边权排好序后选择一段连续的区间然后使用这段区间构成最小生成树&#xff0c;这样时间复杂度是O(m3log⁡m)O(m^3\log m)O(m3logm)&#xff0c;时间复杂…

看eShopOnContainers学一个EventBus

最近在看微软eShopOnContainers 项目&#xff0c;看到事件总线觉得不错&#xff0c;和大家分享一下看完此文你将获得什么&#xff1f;eShop中是如何设计事件总线的实现一个InMemory事件总线eShop中是没有InMemory实现的&#xff0c;这算是一个小小小的挑战发布订阅模式发布订阅…

jzoj3682-Points and Segments【模型转化,欧拉回路】

正题 题目大意 给出若干个区间&#xff0c;然后给每个区间涂颜色(蓝或红)&#xff0c;求一种方案使得每个点的颜色数量差不超过111。 解题思路 我们可以从每个lll向rrr连一条双向边&#xff0c;若此时我们可以跑出欧拉回路&#xff0c;那么这就满足颜色差为0(从l∼rl\sim rl∼…

常用解题算法总结

一、四大基本算法 分治法 动态规划&#xff08;一次买卖股票、多次买卖股票、最大连续子序列和、最大连续子序列积、最长公共子序列&#xff09; 贪心算法 穷举法 二、常用便捷算法 异或法&#xff08;单次偶次数、顺序单次偶次数&#xff09; 位运算&#xff08;单次k次…

创建基于MailKit和MimeKit的.NET基础邮件服务

邮件服务是一般的系统都会拥有和需要的功能&#xff0c;但是对于.NET项目来说&#xff0c;邮件服务的创建和使用会较为的麻烦。.NET对于邮件功能提供了System.Net.Mail用于创建邮件服务&#xff0c;该基础服务提供邮件的基础操作&#xff0c;并且使用也较为的简单。对于真正将该…

欢乐纪中A组赛【2019.8.23】

前言 我好菜 成绩 %%%TRXdalao\%\%\% TRXdalao%%%TRXdalao RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC888(H−2)TRX(H-2)TRX(H−2)TRX120120120202020100100100000121212(H−2)HJW(H-2)HJW(H−2)HJW100100100100100100000000181818(J−3)XXY(J-3)XXY(J−3)XXY80…

Java JVM总结

一、jvm参数 1&#xff09;内存 -Xms -Xmx -Xss -Xloggc:file -Xprof -XX:DisabledExplicitGC -XX:PreBlockSpin -XX:CompileThreshold 2&#xff09;Parallel -XX:SurvivorRatio -XX:PreTenureSizeThreshold -XX:MaxTenuringThreshold -XX:ParallelGCThreads -XX:Us…