jzoj5864
本來這道題該100的,沒想到考試沒想最短路,直接跑暴力了
實際上這道題有原題跳樓機
那道題在模x的意義下統計答案
現在,我們要統計n個數的答案
30pts為提高組原題
剩下70pts,可以記dis[i]表示在模a[1]意義下為i,由a[2]~a[n]可以組合而成的最小數
則i介於0~a[1]-1 ,由於a[1]很小,不會爆炸
每一次從i~(i+a[j])%a[1]連邊權為a[j]的邊,代表我們需要a[j]的代價將模a[1]意義下為i的最小值轉變為(i+a[j])%a[1]
跑完最短路之後,我們就對dis[0~a[1]-1]取max,max為在模i意義下最小不能表示出來的數+i
所以答案為max-i
代碼:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,h[1000010],nxt[1000020],v[1000020],w[1000020],ec,vis[1000020],d[1000010],x[10];
void add(ll a,ll b,ll c){v[++ec]=b;w[ec]=c;nxt[ec]=h[a];h[a]=ec;}
struct no{
ll d,x;
bool operator <(const no &rhs)const{
return d>rhs.d;
}
};
void dij(ll s){
priority_queueq;
q.push((no){0,s});
for(ll i=0;i<=1000000;i++)d[i]=LONG_LONG_MAX/3;
d[s]=0;
while(!q.empty()){
no x=q.top();q.pop();
if(vis[x.x])continue;
vis[x.x]=true;
for(int i=h[x.x];i;i=nxt[i])
if(d[v[i]]>d[x.x]+w[i]){
d[v[i]]=d[x.x]+w[i];
q.push((no){d[v[i]],v[i]});
}
}
}
int main(){
freopen(“sequence.in”,“r”,stdin);
freopen(“sequence.out”,“w”,stdout);
scanf("%lld",&n);
for(ll i=1;i<=n;i++)
scanf("%lld",&x[i]);
if(n==2){
printf("%lld",x[1]*x[2]-x[1]-x[2]);
return 0;
}
ll ans=0;
for(ll i=0;i<x[1];i++)
for(ll j=2;j<=n;j++)
add(i,(i+x[j])%x[1],x[j]);
dij(0);
for(ll i=0;i<x[1];i++)
ans=max(ans,d[i]);
printf("%lld\n",ans-x[1]);
}
jzoj5864的更多相关文章
随机推荐
- Mockplus微信小程序上线!扫一扫轻松查看原型!
Mockplus团队发布了Mockplus微信小程序. 从现在起,你无需下载Mockplus移动端,用微信扫一扫二维码,即可在微信中打开并查看原型.Mockplus微信小程序,无需安装.卸载,不占用手 ...
- 流程控制 if while for 已及数字类型 进制转换
一:if 语句 语法一:ifif 条件: code1 code1 code1 语法二:if ...else ... if 条件: code1 code1 code1else: code1 code1 ...
- python操作数据库-安装
首先是下载软件: 链接:http://pan.baidu.com/s/1nvp1imX 密码:6i0x 之后就是一系列设置. 安装教程:自行百度就行.需要注意的是设置my.ini时,需要加上这些东西( ...
- lynis-*nix安全审计
cd /usr/local/lynis ./lynis --man 全部检查: ./lynis --check-all -Q 采用crontab自动检查: ./lynis -c --auditor & ...
- *C语言的小技巧
计算数组长度 ,,,,}; int Length=sizeof(a)/sizeof(int); 交换a和b的值,不借用辅助变量 a=a+b; b=a-b; a=a-b; 将0-9的字符转化为整数 '; ...
- 从LSM-Tree、COLA-Tree谈到StackOverflow、OSQA
转自: http://blog.csdn.net/v_july_v/article/details/7526689 从LSM-Tree.COLA-Tree谈到StackOverflow.OSQA 作者 ...
- 手动设置3G的wifi迷你无线路由
1.插入中兴的3G无线网卡,终端上显示如下内容: ~ >: usb 1-1.3: new full speed USB device number 11 using s3c2410-ohci u ...
- 团队作业(HCL队)第三周—需求改进和系统分析
2.需求&原型改进: 1.问题:游戏中坦克的移动和攻击怎么控制的? 改进: 在游戏中,我控制我方坦克,按下方向键坦克便向按下的方向移动,按下Z键,我方坦克发射炮弹.敌方坦克面向随机的方向移动, ...
- EBS 中查看LOV中的查询语句
http://blog.csdn.net/shishun123/article/details/6874824 一直有实施顾问询问我XXForm的XX LOV是什么逻辑,取数SQL是什么来着,以前比较 ...
- [FMX]在 FMX 程序中绘制单像素宽度的直线 [FMX]在 FMX 程序中绘制单像素宽度的直线
[FMX]在 FMX 程序中绘制单像素宽度的直线 2017-10-09 • Android.Delphi.教程 • 暂无评论 • swish •浏览 353 次 在前面的一篇文章中,我介绍了一种绘制低 ...