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的更多相关文章
随机推荐
- MySql中4种批量更新的方法
最近在完成MySql项目集成的情况下,需要增加批量更新的功能,根据网上的资料整理了一下,很好用,都测试过,可以直接使用. mysql 批量更新共有以下四种办法 1..replace into 批量更新 ...
- [BAT] 执行xcopy命令后出现Invalid num of parameters错误的解决办法
如果是Windows下的命令行,对于有空格的文件路径要加引号,对于xcopy命令就是源路径和目标路径都要加引号 xcopy "C:\ppt" "D:\Program do ...
- group by 和 distinct 的区别
SELECT fs.card_id, fs. NAME, fs.email, fs.phone_num, fs.weixin_num, fs.permission, fs.open_id FROM f ...
- 关于document.write(来自网络)
对象属性: document.title //设置文档标题等价于HTML的<title>标签document.bgColor / ...
- JavaScript 代码小片段
1.获取对象 obj 的所有属性(自有属性和继承属性),保存到数组 lst 中 //获取对象obj的所有属性(自有属性和继承属性),保存到数组lst 中 var lst = []; function ...
- CentOS7下安装配置Nginx
一:安装依赖项 1.pcre:2.openssl:3.zlib:4.gcc:可直接通过yum安装 二:创建nginx账户(可以配置nginx.conf的user为此账户) useradd nginx ...
- centos6 mysql 安装与配置
MySQL简介: 由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库.MySQL是一个多用户.多线程的关系型数据库管理 ...
- sql语句增删改查(方便你我Ta)
又自学,把SQL的一些常用语句复习了一遍. 整理如下: 1增 1.1[插入单行]insert [into] <表名> (列名) values (列值)例:insert into Strde ...
- 基于SceneControl的三维GIS开发
在ArcGIS体系中,三维开发包括两种:基于Scene的三维开发和基于Globe的三维开发. 由上图可以看出,两种开发的接口都很相似,掌握了Scene开发会相对容易的过渡到Globe开发中. 正如上图 ...
- Linux常见配置文件
一./etc 配置文件 /etc/passwd 用户数据库,其中的域给出了用户名.真实姓名.家目录.加密口令和用户的其他信息 /etc/group 类似/etc/passwd ,但说明的不是用户而是组 ...