天梯赛自主练习4补题 (如果20年去打有机会拿国二吧,国一不太可能,最后俩题都好难啊)
题目
l2-4网红打卡攻略
题意: 略。
思路: 按给定的序列模拟一下即可,如果某个点出现次数不为1,说明不符合条件,或者中间存在点不可达。忘了把不符合条件的情况设为INF,wa了半天。
时间复杂度: O(k*n)
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
const int N = 502;
#define int long long
const int INF = 1e12;
int n,m,k,T;
int a[N][N];
int ans[N];
int vis[N];
int tot;
#define fir(i,a,b) for(int i=a;i<=b;++i)
#define mem(a,x) memset(a,x,sizeof(a))
bool check()
{for(int i=1;i<=n;++i){if(vis[i] != 1) return 0;}return 1;
}
void solve()
{cin>>n>>m;fir(i,0,n){fir(j,0,n){if(i==j) a[i][j] = 0;else a[i][j] = INF;}}for(int i=0;i<m;++i){int x,y,z; cin>>x>>y>>z;a[x][y] = a[y][x] = z;}cin>>k;int idx = 1;for(int t=1;t<=k;++t){int num; cin>>num;vector<int> vv;vv.push_back(0);for(int i=1;i<=n;++i) vis[i] = 0;while(num--){int x; cin>>x;vis[x]++;vv.push_back(x);}if(!check()) {ans[t] = INF;continue;}vv.push_back(0);for(int i=1;i<vv.size();++i){int l = vv[i-1];int r = vv[i];if(a[l][r] == INF){// cout<<l<<" "<<r<<endl;ans[t] = INF;break;}else ans[t] += a[l][r];}if(ans[t] == INF) continue;tot++;if(ans[t] < ans[idx]) idx = t;}cout<<tot<<"\n";cout<<idx<<" "<<ans[idx];
}
signed main(void)
{solve();return 0;
}
l3-1 那就别担心了。
题意: 给定n个点m条边的有向图,统计从st到ed的路径数有多少,并且判断从st开始的路径是否均以ed为终点。
思路: 记忆化搜索即可。如果不记忆化的话会T。终点的方案数默认为1,每个点的方案数是所有儿子的方案数之和。可以发现有很多点的方案数会重复计算,尤其是存在环的情况下。
时间复杂度: O(能过)
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
const int N = 522;
int n,m,k,T;
vector<int> va[N];
int ans = 0;
bool flag = 1;
int st,ed;
bool vis[N];
int f[N];
int dfs(int cur)
{vis[cur] = 1;if(f[cur]) return f[cur];for(int i=0;i<va[cur].size();++i){int j = va[cur][i];f[cur] += dfs(j);}return f[cur];
}
void solve()
{cin>>n>>m;for(int i=0;i<m;++i){int x,y; cin>>x>>y;va[x].push_back(y);}cin>>st>>ed;f[ed] = 1;ans = dfs(st);cout<<ans<<" ";for(int i=1;i<=n;++i){if(vis[i] && !f[i]){flag = 0;}}if(flag) cout<<"Yes";else cout<<"No";
}
signed main(void)
{solve();return 0;
}
天梯赛自主练习4补题 (如果20年去打有机会拿国二吧,国一不太可能,最后俩题都好难啊)相关推荐
- 团体程序设计天梯赛-练习集 L1-059 敲笨钟 (20分)
L1-059 敲笨钟 (20分) 微博上有个自称"大笨钟V"的家伙,每天敲钟催促码农们爱惜身体早点睡觉.为了增加敲钟的趣味性,还会糟改几句古诗词.其糟改的方法为:去网上搜寻压&qu ...
- 关于团体程序设计天梯赛-练习集 L1-009 N个数求和 (20 分) 以及测试点三过不了的一些想法
本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100).随后一行按格式a1/b1 ...
- 国二c语言程序,国家计算机二级c语言题库及答案
国家计算机二级c语言题库及答案 1.以下程序的输出结果是() #include main () {int a,b,d=241; a=d/100%9 b=(-1)&&(+1); prin ...
- 【PTA~21年GPLT团体程序天梯赛-L1题】
文章目录 L1-01 人与神~5 题解 L1-02 两小时学完C语言~5 题解 L1-03 强迫症~10 题解 L1-04 降价提醒机器人~10 题解 L1-05 大笨钟的心情~15 题解 L1-06 ...
- 【GPLT】【2021天梯赛真题题解】【231分】
文章目录 L1-1 人与神 (5 分) 题目描述 题目分析 L1-2 两小时学完C语言 (5 分) 题目描述 题目分析 L1-3 强迫症 (10 分) 题目描述 题目分析 L1-4 降价提醒机器人 ( ...
- 团体程序设计天梯赛 -- 练习集 (L1合集)
文章目录 L1-001 Hello World (5 分) L1-002 打印沙漏 (20 分) L1-003 个位数统计 (15 分) L1-004 计算摄氏温度 (5 分) L1-005 考试座位 ...
- PTA|团体程序设计天梯赛-练习题库集
文章目录 关于爬取脚本的编写 L1-001 Hello World! (5 分) L1-002 打印沙漏 (15 分) L1-003 个位数统计 (15 分) L1-004 计算摄氏温度 (5 分) ...
- 第六届团队程序设计天梯赛 全题目解析讲解
B站已经录好视频合集:--------------------传送门--------------------- 题目是2021年4月天梯赛决赛原题: 题号 题目名称 L1-1 人与神 L1-2 两小时 ...
- 天梯赛 L1-079 天梯赛的善良 (20 分)
天梯赛 L1-079 天梯赛的善良 (20 分) 题目 天梯赛是个善良的比赛.善良的命题组希望将题目难度控制在一个范围内,使得每个参赛的学生都有能做出来的题目,并且最厉害的学生也要非常努力才有可能得到 ...
最新文章
- 原创jQuery移动设备弹出框插件——msgalert.js
- lua_local变量在new时不会被清空
- 四屏带缩略图JS幻灯片
- fcpx大胆流行标题插件 Bold Pop for mac
- 【转载】消息队列RabbitMQ入门介绍
- P1828 香甜的黄油 Sweet Butter (spfa)
- WINDOWS SERVER 2008 R2 GHO 纯净版
- [转载]资深程序员点评当前某些对Lotus Domino 的不实评论
- repo sync代码断点续传
- nginx启动vue_nginx下部署vue项目的方法步骤
- phpstudy探针文件
- linux中vim命令详解(操作大全)
- css中的单位换算_GitHub - WangQiangrong/cssUnitTransform: css单位转换工具
- JavaScript中 切割截取字符串的几种方法
- 太实用了,这几个Python数据可视化案例
- 信息系统项目管理师考试重点汇总,看完这篇再拿十分!
- 案例:通过空气质量指数AQI学习统计分析并进行预测(上)
- mysql中复杂sql语句之多重if嵌套语句
- 基于微信小程序的毕业设计题目(22)php有声读物音频播放小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
- unity 蜡烛火光shader