G - Eating Plan

题意:

一个1到n组成的排列,每个数的价值为其阶乘,有m个询问ki,要求你在排列中选取连续的一块,使得价值和mod 998857459 后,大于ki,问最短区间长度,如果不存在输出-1

题解:

t=998857459,我们对t进行质因数分解,发现t = 461 * 773 * 2803 ,因为每个数的价值为其阶乘,也就是说如果数>=2803,那么mod t 就等于0,也就是大于2803的数对答案没有贡献了,所以我们直接两重循环暴力求出所有区间的价值和,然后找到个数最小的

代码:

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
typedef long long ll;
const int N=1e5+5;
const int mod=998857459;
const int inf=0x3f3f3f3f;
int cnt;
struct node{ll val;int id;
}res[2900];
ll sum[2900],ans[N],jc[N],a[N],n,m;
int main()
{memset(a,0,sizeof(a));memset(ans,0,sizeof(ans));jc[0]=1;for(ll i=1;i<2803;i++)jc[i]=(jc[i-1]*i)%mod;//阶乘scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){int x;scanf("%d",&x);a[i]=jc[x];//赋值 }sum[0]=0;for(int i=1;i<=n;i++){if(a[i]){res[++cnt].val=a[i];res[cnt].id=i;sum[cnt]=sum[cnt-1]+res[cnt].val%mod;}}///暴力求出每个区间长度的最小子段和for(int i=1;i<=cnt;i++){for(int j=i;j<=cnt;j++){ans[res[j].id-res[i].id+1]=max(ans[res[j].id-res[i].id+1],(sum[j]-sum[i-1])%mod);}}while(m--){ll x;scanf("%lld",&x);int len=inf;for(int i=1;i<=n;i++)if(ans[i]>=x){//ans[x]表示区间长度为x的最大价值 len=i;break;}if(len==inf)printf("-1\n");elseprintf("%d\n",len);}return 0;
}

G - Eating Plan相关推荐

  1. G.Eating Together(LIS,LDS)

    牛客假日团队赛7: 链接:https://ac.nowcoder.com/acm/contest/997/G 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K ...

  2. ICPC2019南昌区域赛

    ICPC2019南昌区域赛 题号 题目 知识点 难度 A 9102 B A Funny Bipartite Graph 状压dp+思维 稳银快金 C And and Pair 二项式定理 快铜 D B ...

  3. 菜是原罪der惹某第13周周记(习题+感悟)

    蒟蒻周 (一)2019 ICPC Asia Xuzhou Regional A - < 3 numbers 题目描述 Input Output Sample Input Sample Outpu ...

  4. 【图网络】如何用Python实现算法:规划图技术(GraphPlanner)

    作者 | Debby Nirwan 编译 | VK 来源 | Towards Data Science 这篇文章涉及规划图技术分步算法实现:从伪代码和方程到Python代码.在本文中,我们将用Pyth ...

  5. 长沙中职英语计算机等级考试查询,湖南省中等职业教育公共基础课达标训练英语291-300...

    Test291 测试291 1.--- I'm always a little nervous when I talk to Mr.Smith. -________ He's strict, but ...

  6. 4 angular 重构 项目_再遇angular(angular4项目实战指南)

    这两天看了看angular4的文档,发现他和angular1.X的差别真的是太大了,官方给出的那个管理英雄的Demo是一个非常好的入门项目,这里给出一个管理个人计划的小项目,从头至尾一步一步讲解如何去 ...

  7. Python自动化运维 - day9 - 进程与线程

    概述 我们都知道windows是支持多任务的操作系统. 什么叫"多任务"呢?简单地说,就是操作系统可以同时运行多个任务.打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Wo ...

  8. Postgresql查询执行模块README笔记

    pg14 相关 <Postgresql源码(61)查询执行--最外层Portal模块> <Postgresql源码(62)查询执行--子模块ProcessUtility> &l ...

  9. 雅思IELTS精讲——【作文】

    文章目录 一. 写作 (1)小作文 题型一:归纳动态图 题型二:归纳静态图 题型三:归纳混合图 Practice (2) 大作文 开头段写法 Practice 附录 小作文技巧 大作文技巧 用词的准确 ...

最新文章

  1. AI论文代码强制开源?“我反对!”
  2. CCAI 2019 | Shai Ben-David:人工智能的可学习性能否判定?
  3. 《数据中心项目规范(征求意见稿)》
  4. 关于不同用户进入系统报错的请求
  5. 基于.NetCore3.1搭建项目系列 —— 使用Swagger做Api文档(上篇)
  6. ajax后台重定向会返回什么_跳转,AJAX返回和重定向
  7. Linux的yum命令及基本用法
  8. redis的发布和订阅模式
  9. [HDU 2096] 小明A+B
  10. 智慧城市热度不减 产业资本进军智能汽车相关领域
  11. Unity安卓开发环境搭建
  12. 企业微信在windows上如何实现双开或者多开?
  13. Vue3:基础学习笔记
  14. JavaScript document对象
  15. base64在线解码(等号或者双等号结尾的数据的解码)
  16. 洛谷P3456 [POI2007]GRZ-Ridges and Valleys
  17. Word如何对齐冒号,想把几行的冒号对齐该怎么设置?
  18. PDF文件怎么转图片格式?转换有技巧
  19. 吴裕雄--天生自然 诗经:小儿垂钓
  20. DOS中del和rd的区别

热门文章

  1. 薅羊毛丨5个平价好物,终于终于终于打折了!
  2. 女朋友掉水里,各类程序猿怎么救?
  3. 《SAS编程与数据挖掘商业案例》学习笔记之十三
  4. tftp 服务器 ip_360Stack裸金属服务器部署实践
  5. curd什么意思中文_每日一句英译英:She's a ten什么意思?
  6. matlab自带kpca,求对矩阵进行PCA或者KPCA特征提取的matlab代码
  7. mysql isam 食物_MySQL常用存储引擎之MyISAM
  8. 10玩rust_C++工程师的Rust迁移之路(5)- 继承与组合 - 下
  9. java swing 示例_JAVA简单Swing图形界面应用演示样例
  10. 公众号滑动图代码_实用技巧:公众号封面图如何提取?