學姐每次出門逛街都要帶恰好m元錢, 不過她今天卻忘記帶錢包了.
可憐的doc只好自己湊錢給學姐, 但是他口袋裡只有一元錢.
好在doc的n位朋友們都特別有錢, 他們答應與doc作一些交換.
其中第i位朋友說:
如果doc有不少於ri元錢,
doc可以把手上所有的錢都給這位朋友,
並從這位朋友手中換回vi元錢,
但是這次交換會浪費ti的時間.
doc希望可以在最短的時間內換到m元錢(其實是可以大於m的, 因為doc可以存私房錢呢), 否則學姐會生氣的!
輸入資料第一行給定t, 表示總的詢問次數.
對於每一次詢問, 第一行給出兩個整數n和m.
之後n行, 每一行給出三個整數vi, ri和ti. (保證ri<=vi).
對於每一次詢問, 首先輸出詢問的編號, 參見樣例輸出.
之後輸出最小需要的時間, 如果不可能完成目標, 則輸出-1.
3
5 95 1 1
10 4 10
8 1 10
11 6 1
7 3 8
4 52 1 1
3 2 1
4 3 1
8 4 1
3 10
5 1 3
8 2 5
10 9 2
case #1: 10
case #2: 4
case #3: -1
對於40%的資料
n <= 1500.
對於100%的資料
t <= 5
1 <= n <= 100000.
1 <= m <= 1000000000.
1 <= ri <= vi <= 1000000000.
1 <= ti <= 1000000000.
蒟蒻並沒有看懂sdfzgxk的題解orz……
然而看到了這樣一句話「用f[i]表示從大於等於m的點到i的最短時間」
這……好像可以單源最短路,翻sdfzwxl的題解,可寫
並不清楚long long下怎麼賦極值
1 #include2 #include3 #include4 #include5 #include6using
namespace
std;
7int
t,n,m,cnt,tot;
8struct
dtroad[200010
]; 12
struct
dataedge[400010
];16
int num[400010],head[200010
];17
long
long w[200010
];18
bool check[200010
];19 queueq;
20void add(int start,int end,long
long
dd)26
void
spfa()42}
43}44}
45int
main()
59 sort(num+1,num+cnt+1
);60 cnt=unique(num+1,num+cnt+1)-num-1;61
for(int i=1;i<=n;i++)
66for(int i=2;i<=cnt;i++) add(i,i-1,0
);67
spfa();
68if(w[cnt]==0x3f3f3f3f) printf("
case #%d: -1\n
",ii);
69else printf("
case #%d: %lld\n
",ii,w[cnt]);70}
71return0;
72 }
1901 賞賜 OR 災難
time limit 1 sec memory limit 128 mb submitted 418 solved 110 大g南征北戰終於打下了大片土地成立了g國,大g在開國大典上傳召幫助自己南征北戰的三大開國元勳小a,小b,小c進殿,並要賞賜三人大量寶物以顯示天恩浩蕩。大g在征服其他國家的時候搶...
vue 使用技巧總結 19 01
上面的函式中使用箭頭,會導致 this 捕獲不到 vue 例項。各位道友切記切記.目前通常使用的方式是 然後在查資料的時候翻到了乙個統一管理的方式 asynccomponent.js 檔案 export const component01 import views export const comp...
vijos1901 學姐的錢包
學姐每次出門逛街都要帶恰好m元錢,不過她今天卻忘記帶錢包了.可憐的doc只好自己湊錢給學姐,但是他口袋裡只有一元錢.好在doc的n位朋友們都特別有錢,他們答應與doc作一些交換.其中第i位朋友說 如果doc有不少於ri元錢,doc可以把手上所有的錢都給這位朋友,並從這位朋友手中換回vi元錢,但是這次...