G - Eating Plan
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相关推荐
- G.Eating Together(LIS,LDS)
牛客假日团队赛7: 链接:https://ac.nowcoder.com/acm/contest/997/G 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K ...
- ICPC2019南昌区域赛
ICPC2019南昌区域赛 题号 题目 知识点 难度 A 9102 B A Funny Bipartite Graph 状压dp+思维 稳银快金 C And and Pair 二项式定理 快铜 D B ...
- 菜是原罪der惹某第13周周记(习题+感悟)
蒟蒻周 (一)2019 ICPC Asia Xuzhou Regional A - < 3 numbers 题目描述 Input Output Sample Input Sample Outpu ...
- 【图网络】如何用Python实现算法:规划图技术(GraphPlanner)
作者 | Debby Nirwan 编译 | VK 来源 | Towards Data Science 这篇文章涉及规划图技术分步算法实现:从伪代码和方程到Python代码.在本文中,我们将用Pyth ...
- 长沙中职英语计算机等级考试查询,湖南省中等职业教育公共基础课达标训练英语291-300...
Test291 测试291 1.--- I'm always a little nervous when I talk to Mr.Smith. -________ He's strict, but ...
- 4 angular 重构 项目_再遇angular(angular4项目实战指南)
这两天看了看angular4的文档,发现他和angular1.X的差别真的是太大了,官方给出的那个管理英雄的Demo是一个非常好的入门项目,这里给出一个管理个人计划的小项目,从头至尾一步一步讲解如何去 ...
- Python自动化运维 - day9 - 进程与线程
概述 我们都知道windows是支持多任务的操作系统. 什么叫"多任务"呢?简单地说,就是操作系统可以同时运行多个任务.打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Wo ...
- Postgresql查询执行模块README笔记
pg14 相关 <Postgresql源码(61)查询执行--最外层Portal模块> <Postgresql源码(62)查询执行--子模块ProcessUtility> &l ...
- 雅思IELTS精讲——【作文】
文章目录 一. 写作 (1)小作文 题型一:归纳动态图 题型二:归纳静态图 题型三:归纳混合图 Practice (2) 大作文 开头段写法 Practice 附录 小作文技巧 大作文技巧 用词的准确 ...
最新文章
- AI论文代码强制开源?“我反对!”
- CCAI 2019 | Shai Ben-David:人工智能的可学习性能否判定?
- 《数据中心项目规范(征求意见稿)》
- 关于不同用户进入系统报错的请求
- 基于.NetCore3.1搭建项目系列 —— 使用Swagger做Api文档(上篇)
- ajax后台重定向会返回什么_跳转,AJAX返回和重定向
- Linux的yum命令及基本用法
- redis的发布和订阅模式
- [HDU 2096] 小明A+B
- 智慧城市热度不减 产业资本进军智能汽车相关领域
- Unity安卓开发环境搭建
- 企业微信在windows上如何实现双开或者多开?
- Vue3:基础学习笔记
- JavaScript document对象
- base64在线解码(等号或者双等号结尾的数据的解码)
- 洛谷P3456 [POI2007]GRZ-Ridges and Valleys
- Word如何对齐冒号,想把几行的冒号对齐该怎么设置?
- PDF文件怎么转图片格式?转换有技巧
- 吴裕雄--天生自然 诗经:小儿垂钓
- DOS中del和rd的区别
热门文章
- 薅羊毛丨5个平价好物,终于终于终于打折了!
- 女朋友掉水里,各类程序猿怎么救?
- 《SAS编程与数据挖掘商业案例》学习笔记之十三
- tftp 服务器 ip_360Stack裸金属服务器部署实践
- curd什么意思中文_每日一句英译英:She's a ten什么意思?
- matlab自带kpca,求对矩阵进行PCA或者KPCA特征提取的matlab代码
- mysql isam 食物_MySQL常用存储引擎之MyISAM
- 10玩rust_C++工程师的Rust迁移之路(5)- 继承与组合 - 下
- java swing 示例_JAVA简单Swing图形界面应用演示样例
- 公众号滑动图代码_实用技巧:公众号封面图如何提取?