本來這道題該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的更多相关文章

随机推荐

  1. Mockplus微信小程序上线!扫一扫轻松查看原型!

    Mockplus团队发布了Mockplus微信小程序. 从现在起,你无需下载Mockplus移动端,用微信扫一扫二维码,即可在微信中打开并查看原型.Mockplus微信小程序,无需安装.卸载,不占用手 ...

  2. 流程控制 if while for 已及数字类型 进制转换

    一:if 语句 语法一:ifif 条件: code1 code1 code1 语法二:if ...else ... if 条件: code1 code1 code1else: code1 code1 ...

  3. python操作数据库-安装

    首先是下载软件: 链接:http://pan.baidu.com/s/1nvp1imX 密码:6i0x 之后就是一系列设置. 安装教程:自行百度就行.需要注意的是设置my.ini时,需要加上这些东西( ...

  4. lynis-*nix安全审计

    cd /usr/local/lynis ./lynis --man 全部检查: ./lynis --check-all -Q 采用crontab自动检查: ./lynis -c --auditor & ...

  5. *C语言的小技巧

    计算数组长度 ,,,,}; int Length=sizeof(a)/sizeof(int); 交换a和b的值,不借用辅助变量 a=a+b; b=a-b; a=a-b; 将0-9的字符转化为整数 '; ...

  6. 从LSM-Tree、COLA-Tree谈到StackOverflow、OSQA

    转自: http://blog.csdn.net/v_july_v/article/details/7526689 从LSM-Tree.COLA-Tree谈到StackOverflow.OSQA 作者 ...

  7. 手动设置3G的wifi迷你无线路由

    1.插入中兴的3G无线网卡,终端上显示如下内容: ~ >: usb 1-1.3: new full speed USB device number 11 using s3c2410-ohci u ...

  8. 团队作业(HCL队)第三周—需求改进和系统分析

    2.需求&原型改进: 1.问题:游戏中坦克的移动和攻击怎么控制的? 改进: 在游戏中,我控制我方坦克,按下方向键坦克便向按下的方向移动,按下Z键,我方坦克发射炮弹.敌方坦克面向随机的方向移动, ...

  9. EBS 中查看LOV中的查询语句

    http://blog.csdn.net/shishun123/article/details/6874824 一直有实施顾问询问我XXForm的XX LOV是什么逻辑,取数SQL是什么来着,以前比较 ...

  10. [FMX]在 FMX 程序中绘制单像素宽度的直线 [FMX]在 FMX 程序中绘制单像素宽度的直线

    [FMX]在 FMX 程序中绘制单像素宽度的直线 2017-10-09 • Android.Delphi.教程 • 暂无评论 • swish •浏览 353 次 在前面的一篇文章中,我介绍了一种绘制低 ...