[loj3339]美食家

1 #include<bits/stdc++.h>
2 using namespace std;
3 #define ll long long
4 #define oo 1e15
5 struct mat{
6 ll a[305][305];
7 }a,o,aa,mi[31];
8 struct fe{
9 int t,k,w;
10 }b[205];
11 int n,m,t,k,x,y,z,flag,w[105];
12 ll s[305],ans[305];
13 bool cmp(fe x,fe y){
14 return x.t<y.t;
15 }
16 mat mul(mat &x,mat &y){
17 for(int i=1;i<=5*n;i++)
18 for(int j=1;j<=5*n;j++){
19 o.a[i][j]=-oo;
20 for(int k=1;k<=5*n;k++)o.a[i][j]=max(o.a[i][j],x.a[i][k]+y.a[k][j]);
21 }
22 return o;
23 }
24 void mul(mat &x){
25 memcpy(s,ans,sizeof(s));
26 for(int i=1;i<=5*n;i++){
27 ans[i]=-oo;
28 for(int j=1;j<=5*n;j++)ans[i]=max(ans[i],s[j]+x.a[j][i]);
29 }
30 }
31 void pow(int n){
32 for(int i=0;i<=30;i++)
33 if (n&(1<<i))mul(mi[i]);
34 }
35 int main(){
36 freopen("delicacy.in","r",stdin);
37 freopen("delicacy.out","w",stdout);
38 scanf("%d%d%d%d",&n,&m,&t,&k);
39 for(int i=1;i<=n;i++)scanf("%d",&w[i]);
40 for(int i=1;i<=5*n;i++)
41 for(int j=1;j<=5*n;j++)a.a[i][j]=-oo;
42 for(int i=1;i<=m;i++){
43 scanf("%d%d%d",&x,&y,&z);
44 a.a[(5-z)*n+x][4*n+y]=w[y];
45 }
46 for(int i=n+1;i<=5*n;i++)a.a[i][i-n]=0;
47 aa=a;
48 for(int i=1;i<=k;i++)scanf("%d%d%d",&b[i].t,&b[i].k,&b[i].w);
49 sort(b+1,b+k+1,cmp);
50 mi[0]=a;
51 for(int i=1;i<=30;i++)mi[i]=mul(mi[i-1],mi[i-1]);
52 for(int i=1;i<=5*n;i++)ans[i]=-oo;
53 ans[4*n+1]=0;
54 for(int i=1;i<=k;i++){
55 pow(b[i].t-b[i-1].t-1);
56 a=mi[0];
57 for(int j=1;j<=5*n;j++)a.a[j][4*n+b[i].k]+=b[i].w;
58 mul(a);
59 }
60 pow(t-b[k].t);
61 if (ans[4*n+1]<0)printf("-1\n");
62 else printf("%lld",ans[4*n+1]+w[1]);
63 return 0;
64 }
[loj3339]美食家的更多相关文章
- BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]
1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 786 Solved: 391[Submit][S ...
- [BZOJ1691][Usaco2007 Dec]挑剔的美食家
[BZOJ1691][Usaco2007 Dec]挑剔的美食家 试题描述 与很多奶牛一样,Farmer John那群养尊处优的奶牛们对食物越来越挑剔,随便拿堆草就能打发她们午饭的日子自然是一去不返了. ...
- BZOJ 1691: [Usaco2007 Dec]挑剔的美食家( 平衡树 )
按鲜嫩程度排个序, 从大到小处理, 用平衡树维护价值 ---------------------------------------------------------------------- #i ...
- BZOJ_1691_[Usaco2007 Dec]挑剔的美食家_贪心
BZOJ_1691_[Usaco2007 Dec]挑剔的美食家_贪心 题意: 与很多奶牛一样,Farmer John那群养尊处优的奶牛们对食物越来越挑剔,随便拿堆草就能打发她们午饭的日子自然是一去不返 ...
- 51nod 挑剔的美食家
挑剔的美食家 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 与很多奶牛一样,Farmer John那群养尊处优的奶牛们对食物越来越挑剔,随便拿堆草就能打发她们午饭的日子自然是一 ...
- Java实现 蓝桥杯VIP 算法提高 聪明的美食家
算法提高 聪明的美食家 时间限制:1.0s 内存限制:256.0MB 问题描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好 ...
- 【NOI2020】美食家(矩阵)
Description 给定一张有向图,\(n\) 个顶点,\(m\) 条边.第 \(i\) 条边从 \(u_i\) 到 \(v_i\),走完该边的用时为 \(w_i\).每一个点有一个价值 \(c\ ...
- [XIN算法应用]NOI2020美食家
XIN(\(updated 2021.6.4\)) 对于很多很多的题目,发现自己并不会之后,往往会直接冲上一个XIN队算法,然而,这样 \(\huge{\text{鲁莽}}\) 的行为只能获得 TLE ...
- BZOJ1691: [Usaco2007 Dec]挑剔的美食家
传送门: 一句话题解:贪心+treap 好几天前刚学的treap,然后真到了考treap又写不出来,这么辣鸡还搞什么OI 先按$A_i$递减排序,然后把$C_i$也递减排序,然后用一个指针指向$M$序 ...
随机推荐
- 左手IRR,右手NPV,掌握发家致富道路密码
智能手机的普及让世界成为了我们指尖下的方寸之地. 在各种信息爆炸出现的同时,五花八门的理财信息与我们的生活越贴越近.投资不再仅仅是企业行为,对于个人而言,也是很值得关注的内容. 但是落脚到很小的例子之 ...
- BootstrapBlazor 模板安装
原文地址:https://www.cnblogs.com/ysmc/p/15400270.html Bootstrap Blazor Project Template 为方便大家的使用,Bootstr ...
- JavaScript基础 数字类型
JavaScript 数字类型 目前有两种类型: number BigInt 是表示任意长度的整数 数字的三个特殊值 Infinity 属性用于存放表示正无穷大的数值. -Infinity 属性用于存 ...
- C++类结构体与json相互转换
1. 背景与需求 之前写C#的时候,解析json字符串一般使用的是开源的类库Newtonsoft.Json,方法十分简洁,比如: class Project { public string Input ...
- vue 中级基础考察面试题
vue 生命周期有哪些 beforeCreate created beforeMount mounted beforeUpdate updated activated deactivated befo ...
- iOS自动化之WDA(WebDriverAgent)安装
1.WDA介绍 WebDriverAgent 在 iOS 端实现了一个 WebDriver server ,借助这个 server 我们可以远程控制 iOS 设备.你可以启动.杀死应用,点击.滚动视图 ...
- 【UE4 C++】解析与构建 XML 数据,XmlParser 与 tinyxml
XmlParser 简单读取 XmlParser 为引擎自带模块 XML 文件 <?xml version="1.0" encoding="UTF-8"? ...
- BUAA-OO-JML
BUAA-OO-JML JML 概念与 toolchain JML 是一种为 Java 程序设计的.遵循 design by contract 范式的.基于 Hoare Logic 构建的 behav ...
- Spring父子上下文的使用案例
Spring父子上下文的使用案例 一.背景 二.需求 三.实现步骤 1.基础代码编写 2.测试结果 四.小彩蛋 五.完整代码 一.背景 最近在看在使用Spring Cloud的时候发现,当我们通过Fe ...
- [WPF] 在 Windows 11 中处理 WindowChrome 的圆角
1. Windows 11 的圆角 在直角统治了微软的 UI 设计多年以后,微软突然把直角骂了一顿,说还是圆角好看,于是 Windows 11 随处都可看到圆角设计.Windows 11 使用 3 个 ...