当前位置: 首页 > news >正文

江苏网站建设找拉米拉眼科医院网站优化服务商

江苏网站建设找拉米拉,眼科医院网站优化服务商,网站建设与维护是做什么,海盐县建设门户网站目录 游戏 思路 代码 魔法 思路 代码 P1364 医院设置 思路 代码 P1144 最短路计数 思路 代码 游戏 I-游戏_河南萌新联赛2024第#xff08;三#xff09;场#xff1a;河南大学 (nowcoder.com) 思路 利用dijkstra去寻找起点到其余所有点的最短路径#xff0c;当… 目录 游戏 思路 代码 魔法 思路 代码 P1364 医院设置 思路 代码 P1144 最短路计数 思路 代码 游戏 I-游戏_河南萌新联赛2024第三场河南大学 (nowcoder.com) 思路 利用dijkstra去寻找起点到其余所有点的最短路径当同时不能到达钥匙所在的地点和终点时这个数据无解输出-1记录好第一次dijkstra到钥匙和终点的最短路后在可以到达钥匙的前提下找到钥匙所在节点到其他点的最短路。 答案去第一次就可以到没拿钥匙到终点和拿了钥匙到终点的最短路的最小值。 代码 #includebits/stdc.h #define int long long #define TEST int T; cin T; while (T--) #define ios ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr) const int N 1e6 30; const int M 1e3 10; const int inf 1000000000000000000; using namespace std;int n, m, k; struct node {int u, v, w, d; }e[N]; int head[N]; int dis[N], v2[N], v1[N]; int cnt 0; bool key false; void add(int x, int y, int z, int k) {e[cnt].w z;e[cnt].d k;e[cnt].u y;e[cnt].v head[x];head[x] cnt; } priority_queuepairint,int q; void solve() {cin n m k;for (int i 1; i m; i){int u, v, w, d;cin u v w d;add(u, v, w, d);add(v, u, w, d);}for (int i 0; i n; i) dis[i] inf;dis[1] 0;q.push({0,1});while (!q.empty()){auto t q.top();int now t.second;q.pop();if (v1[now]) continue;v1[now] 1;for (int i head[now]; i; i e[i].v){int net e[i].u;int pt e[i].d;if (!key pt 0) continue;if (dis[net] dis[now] e[i].w){dis[net] dis[now] e[i].w;q.push({ -dis[net],net });}}}if (dis[n] inf dis[k] inf){cout -1\n;return;}if (dis[k] inf){cout dis[n] \n;}int ans1 dis[n], ans2 dis[k];key true;for (int i 0; i n; i) dis[i] inf;dis[k] 0;priority_queuepairint,intQ;Q.push({0,k});while (!Q.empty()){auto t Q.top();int now t.second;Q.pop();if (v2[now]) continue;v2[now] 1;for (int i head[now]; i; i e[i].v){int net e[i].u;int pt e[i].d;if (dis[net] dis[now] e[i].w){dis[net] dis[now] e[i].w;Q.push({-dis[net],net});}}}cout min(ans1, ans2 dis[n]) \n; } signed main() {ios;solve();return 0; } 魔法 H-魔法_河南萌新联赛2024第三场河南大学 (nowcoder.com) 思路 利用vector开一个三维数组去动态规划求解答案因为只能向下走和向右走所以只管走即可不怕走到重复走过的点。 dp数组的含义是dp[x][y][h]在xy这个位置拥有h的血量时最少需要用多少次魔法。 代码 #includebits/stdc.h #define int long long #define TEST int T; cin T; while (T--) #define ios ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr) const int N 1e6 30; const int M 1e3 10; const int inf 512785182741247112; using namespace std; int mp[3001][3001]; struct node {int x, y, he, st; }; void solve() {int n, m, h;cin n m h;vectorvectorvectorintdp(n 1, vectorvectorint(m 1, vectorint(h 1, inf)));for (int i 1; i n; i){for (int j 1; j m; j){cin mp[i][j];}}queuenodeq;q.push({ 1, 1, h, 0 });dp[1][1][h] 0;int dir[2][2] { {1,0},{0,1} };while (q.size()){node it q.front();q.pop();for (int i 0; i 2; i){int tx it.x dir[i][0];int ty it.y dir[i][1];if (tx n || ty m) continue;int cost mp[tx][ty];if (it.he cost dp[tx][ty][it.he - cost] it.st){dp[tx][ty][it.he - cost] it.st;q.push({ tx, ty, it.he - cost, it.st });}if (dp[tx][ty][it.he] it.st 1){dp[tx][ty][it.he] it.st 1;q.push({ tx, ty, it.he, it.st 1 });}}}int ans 1e9;for (int i 1; i h; i){ans min(ans, dp[n][m][i]);}if (ans 1e9) cout -1\n;else cout ans \n; }signed main() {solve();return 0; } P1364 医院设置 P1364 医院设置 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路 数据不大我们暴力枚举每个点建医院时到其余点的最短路径这是最短路加上人数就是这个点的答案遍历完更新最小值即可。 代码 #includebits/stdc.h #define int long long #define TEST int T; cin T; while (T--) #define ios ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr) const int N 1e6 30; const int M 1e3 10; const int inf 512785182741247112; using namespace std; int pe[200]; int n; vectorvectorintf; int dis[101]; void bk() {for (int i 1; i n; i) dis[i] inf; } void dfs(int x, int fa) {for (auto k : f[x]){if (k fa) continue;if (dis[k] dis[x] 1){dis[k] dis[x] 1;dfs(k, x);}} } void solve() {cin n;f.resize(n 2);for (int i 1; i n; i){cin pe[i];int x, y;cin x y;if (x ! 0){f[i].push_back(x);f[x].push_back(i);}if (y ! 0){f[i].push_back(y);f[y].push_back(i);}}int ans 1e9;for (int i 1; i n; i){bk();dis[i] 0;dfs(i, -1);int sum 0;for (int i 1; i n; i){sumdis[i] * pe[i];}ans min(ans, sum);}cout ans \n; }signed main() {ios;solve();return 0; } P1144 最短路计数 P1144 最短路计数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路 bfs动态规划SPFA求解因为使用的是bfs遍历每个点遍历到的第一次就可以得到最短路径当我们第二次遍历到这个点时如果最短路径相同那么加上上一个节点的答案。 下面是主要代码 if (dis[k] dis[x] 1) {dis[k] dis[x] 1;ans[k] ans[x];if (!vis[k]){q.push(k);vis[k] true;} } else if (dis[k] dis[x] 1) {ans[k] ans[x];ans[k] % mod; } 代码 #includebits/stdc.h #define int long long #define TEST int T; cin T; while (T--) #define ios ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr) const int N 1e6 30; const int M 1e3 10; const int inf 512785182741247112; const int mod 100003; using namespace std; int n, m; vectorvectorintf; void solve() {cin n m;f.resize(n 1);int u, v;for (int i 1; i m; i){cin u v;if (u v)continue;f[u].push_back(v);f[v].push_back(u);}vectorintdis(n 1, inf);dis[1] 0;vectorboolvis(n 1, false);vectorintans(n 1);ans[1] 1;vis[1] true;queueintq;q.push(1);while (q.size()){int x q.front();q.pop();vis[x] false;for (auto k : f[x]){if (dis[k] dis[x] 1){dis[k] dis[x] 1;ans[k] ans[x];if (!vis[k]){q.push(k);vis[k] true;}}else if (dis[k] dis[x] 1){ans[k] ans[x];ans[k] % mod;}}}for (int i 1; i n; i) cout ans[i] \n; }signed main() {solve();return 0; }
http://www.hkea.cn/news/14459641/

相关文章:

  • 学会网站建设目的饰品做国际贸易哪些网站
  • 沈阳制作网站长沙网站公司哪家好
  • 如何做好网站seo优化网站域名已经解析但没有被百度等搜索引擎收录怎么办
  • 网站360自然排名要怎么做内容管理系统有哪些
  • 西安网站建设那家伙网页视频怎么下载到本地手机
  • 香蜜湖附近网站建设西宁做网站君博先进
  • 网站建设方案书2000字关键词优化是什么
  • 网站策划方案书的内容上海网络营销推广服务
  • 网站开发报价合同h5开发入门
  • 青岛网站建设方案维护高端视觉网站
  • 湛江网站公司做网站的服务器用什么 系统好
  • 筋郑州做网站wordpress公式 插件
  • 淘宝网站建设可行性分析报告哈尔滨网站建设代理商
  • 哪家建站公司好企业名字查询是否注册
  • 网站建设word文档人力资源外包服务包括哪些
  • 网站漏洞扫描工具如何更换网站模板
  • 广东省建设合同备案网站大人和孩做爰网站
  • 本科毕业 做网站编辑做网站运营有前途么
  • 德阳如何做百度的网站深圳品牌营销型网站建设
  • 佛山网站seo哪家好网站搭建与网站建设
  • 杭州市建设工程交易中心网站wordpress entrance 1.2
  • wordpress多选展示表单网站优化公司大家好
  • 系统优化是什么意思网站做好后怎么做seo
  • 来年做哪些网站致富北京电力建设公司官网
  • 山东高端网站建设方案山东企业网站建设推荐
  • 青岛网站上排名站长工具seo综合查询访问
  • 公司宣传网站制作网站建设需要上传数据库吗
  • 怎么在网站上做抽奖网站建设公司服
  • 网站开发外包哪家好广州seo地址
  • 微网站建设的第一步是什么 标题gucci网站