求某区间各个子集的和的根的最大的五个数。

子集根其实就是这个数模9后的余数,注意的是要区分0和9,两者的余数都是0。、

记录前i个数的和的根,设为sum数组,然后处理两个数组

lft[i][j]表示从i开始往右,最先sum出现根为j的位置。

rht[i][j]表示从i开始往左,最先sum开始出现根为j的位置。

处理一次询问,可以枚举状态,如枚举到j,当lft[i][j]<rht[i][j+k]成立时,则表明k这个根是存在的。

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; const int MAX=101000; int number[MAX],zero[MAX],lft[MAX][11],rht[MAX][11];
int cnt[MAX];
int sum[MAX],cts;
int res[10]; int f(int m){
if(m==0) return 0;
else if((m%9)==0)
return 9;
else return (m%9);
} int main(){
int T,n,tmp,kase=0;
scanf("%d",&T);
while(T--){
printf("Case #%d:\n",++kase);
scanf("%d",&n);
sum[0]=zero[0]=0;
cnt[0]=0;
for(int i=1;i<=n;i++){
scanf("%d",&tmp);
sum[i]=f(sum[i-1]+tmp);
cnt[i]=tmp==0?cnt[i-1]:cnt[i-1]+1;
zero[i]=tmp==0?i:zero[i-1];
}
cnt[n+1]=cnt[n]+1;
for(int i=0;i<=9;i++)lft[n+1][i]=n+1,rht[0][i]=0;
for(int i=n;i>=0;i--){
for(int k=0;k<=9;k++){
if(sum[i]==k)
lft[i][k]=i;
else lft[i][k]=lft[i+1][k];
}
}
for(int i=1;i<=n;i++){
for(int k=0;k<=9;k++){
if(sum[i]==k)
rht[i][k]=i;
else rht[i][k]=rht[i-1][k];
}
}
int qy,x,y,a,b;
scanf("%d",&qy);
while(qy--){
scanf("%d%d",&x,&y);
memset(res,-1,sizeof(res));
for(int i=9,cts=5;i>0&&cts>0;i--){
int k;
for(k=0;k<=9;k++){
a=k;
b=a+i;
if(b>9) b-=9;
if(cnt[lft[x-1][a]]<cnt[rht[y][b]]) break;
}
if(k<=9) res[cts--]=i;
}
if(cts>0){
if(zero[y]>=x) res[cts--]=0;
}
printf("%d",res[5]);
for(int i=4;i>0;i--)
printf(" %d",res[i]);
printf("\n");
}
if(T>0)
printf("\n");
}
return 0;
}

  

HDU 4351的更多相关文章

  1. HDU 4351 Digital root 线段树区间合并

    依然不是十分理解……待考虑…… #include <cstdio> #include <cstring> #include <cstdlib> #include & ...

  2. ACM数据结构相关资料整理【未完成,待补充】

    在网上总是查不到很系统的练ACM需要学习的数据结构资料,于是参考看过的东西,自己整理了一份. 能力有限,欢迎大家指正补充. 分类主要参考<算法竞赛入门经典训练指南>(刘汝佳),山东大学数据 ...

  3. hdu 1542 线段树扫描(面积)

    Atlantis Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  4. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  6. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  7. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  8. HDU 4006The kth great number(K大数 +小顶堆)

    The kth great number Time Limit:1000MS     Memory Limit:65768KB     64bit IO Format:%I64d & %I64 ...

  9. HDU 1796How many integers can you find(容斥原理)

    How many integers can you find Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d ...

随机推荐

  1. ubuntu下创建第一个rails应用程序

    一.创建一个新的应用程序 在控制台输入 > rails new  demo create create README.rdoc create Rakefile create config.ru ...

  2. JS遮罩层

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. androidstudio集成ijkplayer教程

      介绍 ijkplayer是一款非常火的开源视频播放器,android和IOS通用.关于怎么编译怎么导入android Studio中自己的项目,其中坑很多,本篇记录下自己的操作记录.ijkplay ...

  4. hdoj--1533--Going Home(最小费用流)

    Going Home Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  5. 一次显式GC导致的High CPU问题处理过程

    项目现场反馈系统出现性能问题,具体表现为:所有的客户端响应极其卡顿. 第一反应推测,难道是DB层面出现阻塞?检查v$session会话状态及等待类型未见异常,应该可以排除DB层面原因导致的可能. 继续 ...

  6. IE浏览器缓存导致Ajax请求失败

    在IE浏览器中通过Ajax请求后台的数据,如果Page请求是postback类型的,可能会导致Ajax请求失败的问题 我们都知道ajax能提高页面载入的速度主要的原因是通过ajax减少了重复数据的载入 ...

  7. css中常用的七种三栏布局技巧总结

    三栏布局,顾名思义就是两边固定,中间自适应.三栏布局在开发十分常见,那么什么是三栏布局?例如当当网首页边商品导航和右边导航固定宽度,中间的主要内容随浏览器宽度自适应.效果如下图所示: 下面围绕的这样的 ...

  8. 【JavaScript从入门到放弃】JS基础-01

    作为一个前端开发人员,JS是我们行走江湖吃饭的家伙.基本上一个前端人员能值多少大洋,就看JS了.虽然各种框架层出不穷,但是归根结底学好原生JS才是硬道理. 学习任何新东西其实都遵循 10000 小时成 ...

  9. 京东专业“卖”队友,魅族手环将亮相1206魅蓝note新品发布会

    京东一直是国内顶级的数码产品自营销售渠道,但是,正因为庞大的数据体系和平台特殊性,经常会帮我们发现一些“好玩的”保密性较高的东西,譬如价格.信息.谍照等.而在最新上线的京东超级品牌日活动页面上,专业“ ...

  10. Python Django中QQ邮箱授权码问题

    Python Django中QQ邮箱授权码问题 系统及软件版本如下: Ubuntu Kylin 16.04 Python 3.5.1 Django 1.9.7 PyCharm Community Ed ...