2851 菜菜买气球
2851 菜菜买气球
六一儿童节到了,菜菜爸爸带着菜菜来到了游乐园,菜菜可高兴坏了。这不,菜菜看到了一排卖气球的,便吵着闹着要买气球。
不过这些卖气球的也奇怪,他们都站成了一排,而且每个人每次都只卖一定数量的气球,多了不卖,少了也不卖。
菜菜爸爸已经打听好了这N个人每次卖的气球数量,忽然想考考菜菜:只能从连续的若干个人那里买气球,并且气球总数必须是质数,求最大的可行的气球总数。
这个问题可难住了菜菜,他找到了你,请你帮忙计算该从哪个人买到哪个人,气球总数是多少。
第一行,一个正整数N。
第二行,N个正整数,第i个数表示第i个人每次卖的气球数ni。
一行,三个正整数l,r,s,分别表示买第l个人到第r个人的气球,总数为s,要求s尽可能大。在有若干个最优解的情况下,输出l最小的一组。数据保证有解。
3
1 3 4
2 3 7
对于10%的数据,有0<N<=20。
对于100%的数据,有0<N<=2000,0<ni<=1000。
分类标签 Tags 点此展开
#include<cstdio> #include<cstring> #include<iostream> using namespace std; #define N 2001 int prime[N],a[N],f[N][N]; bool check[N]; int n,l,r,ma; void init(){int tot=0;for(int i=2;i<=2000;i++){if(!check[i])prime[tot++]=i;for(int j=0;j<tot;j++){if(i*prime[j]>2000) break;check[i*prime[j]]=1;if(i%prime[j]==0) break;}} } int main(){init();scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}for(int i=1;i<=n;i++) f[i][i]=a[i];for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){f[i][j]=max(f[i][j],f[i][j-1]+a[j]);if(ma<f[i][j]&&!check[f[i][j]]){ma=f[i][j];l=i;r=j;}}}printf("%d %d %d\n",l,r,ma);return 0; }
思路:f[i][j]表示第i个气球到第j个气球的最大值,再加上一个pd()判断是素数,记录一下,就ok
AC代码:
#include<cstdio> #include<cmath> #include<cstring> using namespace std; #define N 2010 int n,l,r,ma,a[N],f[N][N]; int jfs(int x,int y){if(x==y) return a[x];if(f[x][y]>=0) return f[x][y];int mid=x+y>>1;return f[x][y]=jfs(x,mid)+jfs(mid+1,y); } int pd(int x){if(x<2) return 0;for(int i=2;i<=sqrt(x);i++)if(x%i==0) return 0;return 1; } int main(){scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",a+i);memset(f,-1,sizeof f);for(int i=1;i<=n;i++){for(int j=i;j<=n;j++){int p=jfs(i,j);if(p>ma&&pd(p))ma=p,l=i,r=j;}}printf("%d %d %d\n",l,r,ma);return 0; }
毕竟这是一道数论题,搜索、dp……肯定不如数论优啊。
下面为AC数论版代码:
就是短了点。。。
#include<cstdio> #include<cmath> using namespace std; #define N 2001 int a[N],sum[N],n,ans,l,r; int pd(int x){if(x<2) return 0;for(int i=2;i<=sqrt(x);i++)if(x%i==0) return 0;return 1; } int main(){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);sum[i]=sum[i-1]+a[i];}for(int i=1;i<=n;i++)for(int j=i;j<=n;j++)if(pd(sum[j]-sum[i-1])){if(sum[j]-sum[i-1]>ans){ans=sum[j]-sum[i-1];l=i; r=j;}}printf("%d %d %d\n",l,r,ans);return 0; }
转载于:https://www.cnblogs.com/shenben/p/5639585.html
2851 菜菜买气球相关推荐
- 有哪些投资小的生意(盘点四个投资小风险低的生意)
在当前社会上,有不少下岗失业人员,年龄都在50岁左右,这个年龄段想重新找一份工作,肯定是非常困难的.那么,一个53岁的下岗失业者,现在适合做哪些投资小的生意呢?我这里根据当前市场情况,推荐一些项目,仅 ...
- Java小型管理系统,文章中有源码,适合作为课程作业,个人小项目(中等)
Bills.java package cn.tx1;/*** ID 类别 账户 类型 余额 时间 备注*/ public class Bills {private String name;privat ...
- python turtle画气球-如何用python的装饰器定义一个像C++一样的强
如何用python的装饰器定义一个像C++一样的强 Python作为一个动态的脚本语言,其函数在定义时是不需要指出参数的类型,也不需要指出函数是否有返回值.使用python的装饰器来定义一个像C++那 ...
- 互联网不互联,挡住淘菜菜?
文|螳螂观察 作者|陈小江 近段时间的社区团购,有点风声鹤唳了. 11月16日,阿里旗下社区团购业务"淘菜菜"进行了一项业务调整,将暂停贵州区域服务. 在大部分网友眼中,这是一个公 ...
- iphone11什么时候上市_hd3手表高仿哪里买 什么时候上市?
hd3手表高仿哪里买 什么时候上市? 导读:hd3手表高仿哪里买zf的万国7日链 高仿表 怎么样?款式设计非常出色,很多手表的款式,依靠着该性价比的迅速提升来做出的有效转化,年轻人对于 复刻表 的选择 ...
- 互联网晚报 | 9月16日 星期四 | 网易云音乐发布“村民证”;阿里社区电商品牌升级为“淘菜菜”;高德打车上线“实景上车点”...
今日看点 ✦ 美团.饿了么发布声明:严禁诱导和强迫骑手注册成个体工商户 ✦ 阿里社区电商品牌升级为"淘菜菜",整合"盒马集市"与"淘宝买菜&qu ...
- 无锡金秋购物节 淘菜菜提供社区消费全景式服务
10月1日-3日,江苏省无锡市政府举办"无锡太湖(金秋)购物节",通过线上线下融合,为市民带来多元丰富的消费体验.作为此次入选政府合作的社区电商平台,淘菜菜直连近万个农产品基地和1 ...
- NKOJ——P1095——气球游戏
时间限制 : 15000 MS 空间限制 : 65536 KB 评测说明 : 1s,64m 原题 问题描述 输入格式 输出格式 样例 样例 1 样例输入 1 样例输出 1 样例 2 样例输入 2 样例 ...
- 《地图气球》小程序从产品到运维的个人全栈开发过程分享(长文)
前言 怕过不了审,先声明一下,这不是广告,因为这个小程序没上架. 从5年前入行的时候就一直想做一个社交产品,最近工作略闲,加之小程序火爆,下班后时间多,于是就花费了一个月业余时间,动手做了一个基于地理 ...
最新文章
- HDU_1253 胜利大逃亡(BFS)
- 因果推断研究获2021诺贝尔经济学奖,图灵奖得主Judea Pearl祝贺并反对
- leetcode算法题--最佳买卖股票时机含冷冻期★
- JVM内存管理–GC算法精解(五分钟让你彻底明白标记/清除算法)
- 如何设置windows下xampp的phpMyAdmin外网访问?
- php mysqli::close()
- 常用脚本--查看数据库文件大小
- 史上最全AI论文集结:近千篇论文分门别类整理好
- img = img1*mask + img2*(1-mask) How do that ?
- Kyle Torpey:当前在以太坊发送WBTC成本比链上进行BTC交易成本更高
- python接口自动化(三十七)-封装与调用--读取excel 数据(详解)
- 街霸5 android,MD街头霸王5免安装版
- 黑苹果卡在白苹果不动_从黑苹果到“白苹果”这一年我经历了什么
- 【cuda】——npp/cuda图像预处理resize+norm对比
- Android模仿微信浮窗功能的效果实现
- Ubuntu20.4:安装OpenCV4,配置vscode+CMake作为基本开发环境
- 用于 Linux* 的英特尔® 图形驱动程序 以后买本本的时候,先注意一下
- Python抓取QQ音乐歌单并分析
- sql语句查询,多字段like模糊查询优化
- NanoPi NEO小试牛刀(一)