浙江省赛2021 F 思维 J spfa + 完全背包
F
思维
遍历 1 --> sqrt(m) + 1
n - i 是摧毁机器人的花费, k * i - m 是增加能量棒的花费
#include <bits/stdc++.h>
using namespace std;
const int inf=1e9;
int n,m;
void solve()
{scanf("%d%d",&n,&m);if(n > m){printf("%d\n",n-m);return ;}int sq = sqrt(m) + 1;int ans = inf;for(int i = 1; i <= sq; ++i){int k = (m + i - 1) / i;// k是 m / i 向上取整 if(n >= i)// n -> i{ans = min(ans, n - i + k * i - m);// n - i 是摧毁机器人的花费, k * i - m 是增加能量棒的花费 // n-->i的花费 m-->k*i的花费}if(n >= k)// n -> k{ans = min(ans, n - k + k * i - m);// n-->k的花费 m-->k*i的花费}}printf("%d\n", ans);
}
int main()
{int T;scanf("%d",&T);while(T--) solve();return 0;
}/*
3
3 12
10 6
8 20
*/
J
spfa + 完全背包
题意就是 给你n个节点,m条边的无向图(可能有重边、自环),给你一个时间t,每条边花费时间1,求在时间1-t的范围内,每个时间对应的所能获得的最大珠宝价值
思路:先用求出1到每个节点的最短路,然后就变成了完全背包问题
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 5e3 + 9;
int a[N], dis[N], dp[N], vis[N];
vector <int> v[N];
int main()
{int n, m , t;cin >> n >> m >> t;for(int i = 2; i <= n; ++i) scanf("%d", &a[i]);while(m--){int x, y;scanf("%d %d", &x, &y);v[x].push_back(y);v[y].push_back(x);}for(int i = 2; i <= n; ++i) dis[i] = t + 1;queue <int> q;q.push(1);while(!q.empty()){int now = q.front();q.pop();vis[now] = 0;int d = dis[now] + 1;for(auto x : v[now])if(dis[x] > d){dis[x] = d;q.push(x);vis[x] = 1;}}for(int i = 2; i <= n; ++i) dis[i] <<= 1;// 来回需要两遍for(int i = 1; i <= t; ++i){ // 根据题意遍历每一个总时间tdp[i] = dp[i-1];for(int j=2; j <= n; ++j)// 完全背包从小到大{if(dis[j] <= i){dp[i] = max(dp[i], a[j] + dp[i - dis[j]]);}}}for(int i = 1; i <= t; ++i){if(i > 1) cout << " ";cout << dp[i];}return 0;
}
浙江省赛2021 F 思维 J spfa + 完全背包相关推荐
- 2021浙江省赛题解(A,C,F,G,J,L,M)
2021浙江省赛题解(A,C,F,G,J,L,M) A.League of Legends 题解 签到题 直接求和判断一下 注意会爆 i n t int int以及相等的情况. 代码 #include ...
- 2021年 第12届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2021.04.18】
蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[题目下载.2013年(第4届)~2020年(第11届)] CSDN 蓝桥杯 专栏 2013年 第04届 蓝桥杯 Java B组 省赛真题详解及小结 ...
- 【2016浙江省赛:区间取模】E : Modulo Query | ZOJ - 3940
2016浙江省赛:E 题 Modulo Query [难度] 4.5/104.5/104.5/10 据说是卡银题?感觉有点难 [题意] F(i,X)={XmodA1i=1F(i−1,X)modAi2≤ ...
- 中国计量大学现代科技学院第四届“中竞杯”程序设计校赛(同步赛)F.爬塔
中国计量大学现代科技学院第四届"中竞杯"程序设计校赛(同步赛)F.爬塔 题目链接 题目描述 高川最喜欢的游戏当属 Slay the Spire,这是一款爬塔游戏,你需要从一座塔的底 ...
- ACM-ICPC 2018 沈阳赛区网络预赛(E F G J K)
ACM-ICPC 2018 沈阳赛区网络预赛(E F G J K) 复杂的模拟题懒癌患者表示写不动 D. Made In Heaven (K短路) 略 int head[MAXN]; int cure ...
- 2022浙江省赛、ICPC昆明区域赛 游·寄
前夜 周六打的浙江省赛.周日昆明区域赛,周五平常作息,早上和爸妈聊天 我说道 金华疫情情况还好,还能出校吃饭,没想到 噩耗马上就来了.金华突然有了几例阳性,其中有一位还是滴滴司机.线上教学的消息已发出 ...
- 2022河南萌新联赛第(二)场:河南理工大学 补题题解(A、B、C、F、J、L)
2022河南萌新联赛第(二)场:河南理工大学 A 妙手 B 宝石 C 斩龙 F 手办 J 签到 L HPU 就过了一道题,三道签到的两题都是思路对了但没写出来,只能说自己还是太菜,需要努力! 比赛地址 ...
- 12届蓝桥杯省赛c++b组 J题 括号序列
这次要讲的前几个星期刚比完的蓝桥杯c++b组J题:括号序列.本次比赛我也参加了,但是这道题我是dfs求解的,所以都只是拿了少部分的分,我比赛时的代码就不展示了,因为时间复杂度很高,所以我就直接讲解正解 ...
- 第十三届蓝桥杯国赛 C++ B 组 J 题——搬砖(AC)
目录 1.搬砖 1.题目描述 2.输入格式 3.输出格式 4.样例输入 5.样例输出 6.数据范围 7.原题链接 2.解题思路 3.Ac_code 1.搬砖 1.题目描述 这天,小明在搬砖. 他一共有 ...
最新文章
- 解决request中文乱码问题
- python 统计文件top IP
- 【学习】计算几何初步
- Liunx——校准时间、时间同步(ntpd、ntpdate)
- Boost:循环缓冲区总和的测试程序
- oracle jet auto,如何启用sqlplus的AutoTrace功能
- 前端学习(3196):虚拟dom和真实dom
- 微软黑屏补丁_慎装微软最新Win7补丁 部分用户更新补丁后无法关机
- 安卓案例:Okhttp3用法演示
- libevent 源码深度剖析十三
- 27岁985女硕,运营商工作三年,迷茫想转型
- 邮箱服务器如何配置?POP和IMAP如何定义?
- 同比 数据模型 环比_同比(环比)在分析模型中的实现
- Phalcon 上传文件
- canvas将彩色图片变为灰度图片理解问题
- 在Etherscan上自动验证Truffle智能合约
- 位运算——左移右移运算详解
- 设计模式---观察者模式(Observer)和委托事件模型(DEM)
- 小楷的由来,小楷适合写小字
- 用 Fiddler 来抓取手机包