题目:https://www.luogu.org/problemnew/show/P3953 主要是看题解...还是觉得好难想啊... dfs DP,剩余容量的损耗是边权减去两点最短路差值...表示对于最短路来说多走了这么多... 还要注意该点能否到达 n 号点,不能就不走了(剪枝): %p 那个地方会爆 int 吗?反正 %=p RE了一个点...(然而改成 ll 还是RE) 代码如下: #include<iostream> #include<cstdio> #include&l…
洛谷 P3951 NOIP 2017 小凯的疑惑 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在 小凯无法准确支付的商品. 输入格式 两个正整数 \(a\) 和 \(b\),它们之间用一个空格隔开,表示小凯中金币的面值. 输出格式 一个正整数 \(N\),表示不找零的情况下,小凯用手中的金币不能准确支付的最…
Description 策策同学特别喜欢逛公园.公园可以看成一张$N$个点$M$条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,$N$号点是公园的出口,每条边有一个非负权值, 代表策策经过这条边所要花的时间. 策策每天都会去逛公园,他总是从1号点进去,从$N$号点出来. 策策喜欢新鲜的事物,它不希望有两天逛公园的路线完全一样,同时策策还是一个 特别热爱学习的好孩子,它不希望每天在逛公园这件事上花费太多的时间.如果1号点 到$N$号点的最短路长为$d$,那么策策只会喜欢长度不超过$d…
P3953 逛公园 题目描述 策策同学特别喜欢逛公园.公园可以看成一张N个点M条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,N号点是公园的出口,每条边有一个非负权值, 代表策策经过这条边所要花的时间. 策策每天都会去逛公园,他总是从1号点进去,从N号点出来. 策策喜欢新鲜的事物,它不希望有两天逛公园的路线完全一样,同时策策还是一个 特别热爱学习的好孩子,它不希望每天在逛公园这件事上花费太多的时间.如果1号点 到N号点的最短路长为d,那么策策只会喜欢长度不超过d+K的路线. 策策同…
题目描述: 策策同学特别喜欢逛公园.公园可以看成一张N个点MM条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,N号点是公园的出口,每条边有一个非负权值, 代表策策经过这条边所要花的时间. 策策每天都会去逛公园,他总是从1号点进去,从N号点出来. 策策喜欢新鲜的事物,它不希望有两天逛公园的路线完全一样,同时策策还是一个 特别热爱学习的好孩子,它不希望每天在逛公园这件事上花费太多的时间.如果1号点 到N号点的最短路长为d,那么策策只会喜欢长度不超过d + K的路线. 策策同学想知道总共…
题目:https://www.luogu.org/problemnew/show/P3960 NOIP 题,不用很复杂的数据结构...但又参考了许多: 要求支持维护删除第 k 个和在末尾插入的数据结构,线段树就很好: 所以每行一个线段树维护前 m-1 个元素,最后一列一个线段树即可: 但 n+1 个线段树显然空间太大,考虑利用一开始是按顺序排列的特点: 也就是不用实际开出来所有线段树的点,只要它是满的就可以直接算出来: 对于新加入线段树的点,如果真的加入线段树里,又不会算空间了... 但是新加入…
题目传送门 传送门 题目大意 给定一个$n$个点$m$条边的带权有向图,问从$1$到$n$的距离不超过最短路长度$K$的路径数. 跑一遍最短路. 一个点拆$K + 1$个点,变成一个DAG上路径计数问题.直接拓扑排序加动态规划,如果有一个$n$号点的剩余度数非0,就一个合法的路径上存在零环(这样可以无线走了). 于是成功T掉了. 把拓扑排序变成不建图,从$n$开始记忆化搜索,然后就过了. 我居然把模数P打错成M调了一个上午,果然我菜啊... Code /** * Uoj * Problem#33…
题目大意:维护动态带修改最大子段和. 题解:线段树额外维护合并最优解时需要的信息. 代码如下 #include <bits/stdc++.h> using namespace std; const int maxn=5e5+10; inline int read(){ int x=0,f=1;char ch; do{ch=getchar();if(ch=='-')f=-1;}while(!isdigit(ch)); do{x=x*10+ch-'0';ch=getchar();}while(is…
题目:https://www.luogu.org/problemnew/show/P2822 阶乘太大,算不了: 但 k 只有 8 个质因子嘛,暴力60分: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; ]={,,,,,,,},num[],tp[],pk[],tp2[],tt[]; void gt(int x,i…
题面 这道题是一道不错的计数类DP: 首先我们一定要跑一遍dijkstra来求得每个点到1号点的最短路: 注意题干,题中并没有说所有点都可以到达n好点,只说了存在一条1号点到n号点的路径:所以我们在反向图上BFS求出那些点可以到达n号点; 然后就是dp.我们设计状态:f[u][rest]表示到达u号点时,还可以走额外rest这么长的路:很显然得:f[u][rest]=sigma(f[v][rest-w+dis[v]-dis[u]]) 其中dis[u]表示从1到u得最短路:w表示从u到v的边权:…