PTA L3 题目合集(暂不更新)

2023-10-27

L3-001 凑零钱 (30 分)

01背包问题记录路径

#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+10;

int n, m;
int a[N], dp[110], op[N][110];

int main()
{
	cin >> n >> m;
	for (int i = 1;i <= n;i ++) cin >> a[i];
	
	sort (a+1, a+n+1, greater<int> ()); // 从大到小排序算得的是最小字典序,从小到大排序算得的是最大字典序 
	
	for (int i = 1;i <= n;i ++)
		for (int j = m;j >= a[i];j --) {
			if (dp[j] <= dp[j-a[i]] + a[i]) { // <=
				dp[j] = dp[j-a[i]] + a[i];
				op[i][j] = 1;
			}
		}
	
	if (dp[m] != m) return puts ("No Solution"), 0;
	
	int j = m, i = n, flag = 0;
	while (i >= 1 && j >= 0) {
		if (op[i][j]) {
			if (flag) cout << ' ';
			cout << a[i];
			flag = 1;
			j -= a[i];
		}
		i --;
	}

	return 0;
}

L3-003 社交集群 (30 分)

并查集,两个人只要存在至少一个相同,那么就算一类。

#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+10;

int n, k, a, b, ans;
int st[N], cnt[N], fa[N], peo[N];
vector <int> fas;

int find (int x) {
	return fa[x] == x ? fa[x] : fa[x] = find (fa[x]);
}

void join (int x, int y) {
	int rx = find (x), ry = find (y);
	if (rx!=ry) fa[rx] = ry;
}

bool cmp (int a, int b) {
	return cnt[a] > cnt[b];
}

int main()
{
	cin >> n;
	for (int i = 0;i <= 1000;i ++) fa[i] = i;
	for (int i = 1;i <= n;i ++) {
		cin >> k;
		getchar ();
		cin >> a;
		peo[i] = a;
		st[a] = 1;
		while (-- k) {
			cin >> b;
			join (a, b);
			st[b] = 1;
		}
	}	
	
	for (int i = 1;i <= n;i ++) {
		int rt = find (peo[i]);
		cnt[rt] ++;
	}
	
	for (int i = 1;i <= 1000;i ++)
		if (st[i] && fa[i] == i) 
			ans ++, fas.push_back (fa[i]);;
	
	sort (fas.begin(), fas.end(), cmp);
	
	cout << ans << endl;
	cout << cnt[fas[0]];
	for (int i = 1;i < fas.size();i ++)
		cout << ' ' << cnt[fas[i]];
		 
	return 0;
}

L3-004 肿瘤诊断 (30 分)

DFS会爆栈。

#include<bits/stdc++.h>
using namespace std;
const int L = 100, M = 1500, N = 150;

int n, m, l, t, ans, sum;
int a[L][M][N], st[L][M][N];

int dir[3][6] = {-1, 1, 0, 0, 0, 0,
				 0, 0, -1, 1, 0, 0,
				 0, 0, 0, 0, -1, 1};

struct node {
	int z, x, y;
};

void bfs (int z, int x, int y) {
	queue <node> q;
	q.push ({z, x, y});
	st[z][x][y] = 1;
	while (q.size ()) {
		
		node t = q.front ();
		int z = t.z, x = t.x, y = t.y;
		q.pop ();
		sum ++;
		
//		cout << z << ' ' << x << ' ' << y << endl;
		
		for (int k = 0;k < 6;k ++) {
			int tz = z + dir[0][k], tx = x + dir[1][k], ty = y + dir[2][k];
			if (tz > l || tz < 1 || tx > m || tx < 1 || ty > n || ty < 1) continue;
			if (st[tz][tx][ty] || !a[tz][tx][ty]) continue;
			st[tz][tx][ty] = 1;
			q.push ({tz, tx, ty});
		}
	}
}

int main()
{
	cin >> m >> n >> l >> t;
	for (int i = 1;i <= l;i ++)
		for (int j = 1;j <= m;j ++)
			for (int k = 1;k <= n;k ++) 
				cin >> a[i][j][k];
	
	for (int i = 1;i <= l;i ++)
		for (int j = 1;j <= m;j ++)
			for (int k = 1;k <= n;k ++) {
				sum = 0;
				if (!st[i][j][k] && a[i][j][k]) bfs (i, j, k);
				if (sum >= t) ans += sum;
			}

	cout << ans << endl;
	return 0;
}

L3-005 垃圾箱分布 (30 分)

题解链接

L3-007 天梯地图 (30 分)

题解链接

L3-008 喊山 (30 分)

#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+10;

int ans = 0;
int st[N], dis[N];
int e[N<<2], ne[N<<2], h[N], idx;

void add (int a, int b) {
	e[idx] = b, ne[idx] = h[a], h[a] = idx ++;
}
 
void bfs (int x) {
	
	queue <int> q;
	q.push (x);
	dis[x] = 1;
	st[x] = 1;
	int mx_dis = 0;
	
	while (q.size ()) {
		int t = q.front ();
		q.pop ();
		if (dis[t] > mx_dis) {
			mx_dis = dis[t];
			ans = t;	
		} else if (dis[t] == mx_dis) {
			ans = min (ans, t);
		}
		
		for (int i = h[t];~i;i = ne[i]) {
			int j = e[i];
			if (st[j]) continue;
			st[j] = 1;
			dis[j] = dis[t] + 1;
			q.push (j);
		}
	}
}

int main()
{
	memset (h, -1, sizeof h);
	int n, m, k;
	cin >> n >> m >> k;
	while (m --) {
		int a, b;
		cin >> a >> b;
		add (a, b);
		add (b, a);
	}	
	
	while (k --) {
		int s;
		cin >> s;
		
		ans = N;
		memset (st, 0, sizeof st);
		
		bfs (s);
		
		if (ans == s) cout << 0 << endl;
		else cout << ans << endl;
	}

	return 0;
}

L3-010 是否完全二叉搜索树 (30 分)

#include<bits/stdc++.h>
using namespace std;
const int N = 100;

int n, x, cnt;
int tr[N];

int main()
{
	cin >> n;
	for (int i = 1;i <= n;i ++) {
		cin >> x;
		int p = 1;
		while (tr[p] != 0) {
			if (x > tr[p]) p = (p << 1);
			else p = (p << 1 | 1);
		}
		tr[p] = x;
	}	
	
	for (int i = 1; ;i ++) {
		if (tr[i]) {
			cnt ++;
			if (cnt == 1) cout << tr[i];
			else cout << ' ' << tr[i];
		}
		if (cnt == n) {
			cout << endl;
			if (i == n) puts ("YES");
			else puts ("NO");
			return 0;
		}
	}
		
	return 0;
}

L3-013 非常弹的球 (30 分)

#include<bits/stdc++.h>
using namespace std;
const double g = 9.8, eps = 1e-8; // 精度不能只开到1e-4 

double m, p, s = eps, sum, E = 1000;

int main()
{
	cin >> m >> p;
	while (fabs (s) >= eps) {
		s = 200.0 * E / m / g;
		sum += s;
		E *= (1 - p / 100.0);
	}
	printf ("%.3lf", sum);

	return 0;
}

L3-018 森森美图 (30 分)

题解链接

L3-020 至多删三个字符 (30 分)

题解链接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PTA L3 题目合集(暂不更新) 的相关文章

  • 如何检查图像对象与资源中的图像对象是否相同?

    所以我试图创建一个简单的程序 只需在单击图片框中更改图片即可 我目前只使用两张图片 所以我的图片框单击事件函数的代码 看起来像这样 private void pictureBox1 Click object sender EventArgs
  • 如何避免情绪低落?

    我有一个实现状态模式每个状态处理从事件队列获取的事件 根据State因此类有一个纯虚方法void handleEvent const Event 事件继承基础Event类 但每个事件都包含其可以是不同类型的数据 例如 int string
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 指针问题(仅在发布版本中)

    不确定如何描述这一点 但我在这里 由于某种原因 当尝试创建我的游戏的发布版本进行测试时 它的敌人创建方面不起作用 Enemies e level1 3 e level1 0 Enemies sdlLib 500 2 3 128 250 32
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • 如果使用 SingleOrDefault() 并在数字列表中搜索不在列表中的数字,如何返回 null?

    使用查询正数列表时SingleOrDefault 当在列表中找不到数字时 如何返回 null 或像 1 这样的自定义值 而不是类型的默认值 在本例中为 0 你可以使用 var first theIntegers Cast
  • Web API - 访问 DbContext 类中的 HttpContext

    在我的 C Web API 应用程序中 我添加了CreatedDate and CreatedBy所有表中的列 现在 每当在任何表中添加新记录时 我想填充这些列 为此目的我已经覆盖SaveChanges and SaveChangesAsy
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • Process.Start 阻塞

    我正在调用 Process Start 但它会阻止当前线程 pInfo new ProcessStartInfo C Windows notepad exe Start process mProcess new Process mProce
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46

随机推荐

  • 深入理解Java虚拟机jvm-对象如何进入老年代

    HotSpot虚拟机中多数收集器都采用了分代收集来管理堆内存 那内存回收时就必须能决策哪些存 活对象应当放在新生代 哪些存活对象放在老年代中 为做到这点 虚拟机给每个对象定义了一个对象年龄 Age 计数器 存储在对象头中 对象通常在Eden
  • 视频插帧—学习笔记(算法+配置+云服务+Google-Colab)

    恰好碰到同学项目需要 了解了一下关于利用深度学习视频插帧的相关知识 在这里做一个简单的记录 目录 一 方法 论文 1 DAIN Depth Aware Video Frame Interpolation 2 FLAVR Flow Agnos
  • 自己动手实现简易STL

    自己动手实现简易STL STL六个组件 迭代器 算法 容器 迭代器部分 适配器 仿函数 额外的工作 小结 之前学习C 看侯老师的书的时候实现了一下STL的基本组件 包括了6个组件 allocator iterator container t
  • buuctf/re/近日总结/rome,pyre等(详细解释)

    rome 检测到无壳 32位 直接用IDA打开 转到main函数 int func int result eax int v1 4 esp 14h ebp 44h unsigned int8 v2 esp 24h ebp 34h BYREF
  • Pandas方法(未完待续....)

    DataFrame方法参数解释 dropna axis 0 how any thresh None subset None inplace False axis 默认0 0代表行 1代表列 how 有all 或者 any all全部为NA则
  • 体验vSphere 6之1-安装VMware ESXi 6 RC版

    体验vSphere 6之1 安装VMware ESXi 6 RC版 在2015年 各个公司都会发布一系列新的产品 例如Microsoft会发布Windows 10 VMware会发布vSphere 6系列 现在这些产品都已经有了测试版 今天
  • LLVM系列第十六章:写一个简单的编译器

    系列文章目录 LLVM系列第一章 编译LLVM源码 LLVM系列第二章 模块Module LLVM系列第三章 函数Function LLVM系列第四章 逻辑代码块Block LLVM系列第五章 全局变量Global Variable LLV
  • 用 flex 和 瀑布流 解决高度不同的元素浮动导致页面混乱问题

    当元素的高度各不相同并且设置了浮动 页面展示如下 flex布局 瀑布流布局 瀑布流动态加载图片 flex布局 红框所画图片在第一行放不下 属于第二行的元素 但是由于浮动的特性 导致它出现在了这个位置 如果想让它另起一行顶头展示 可以使用fl
  • 1.3 Linux文件系统

    一 Linux文件系统结构 Linux下都是文件 所以没有Windows一样的盘 有的只有文件夹 cd 进入根目录 ls 查看根目录 下的文件及文件夹 bin 存储了很多系统命令 usr sbin 也存储了许多系统命令 sbin 超级用户
  • MODBUS协议中的CRC校验

    一 RTU 檢查碼 CRC 計算器 第一种 RTU 檢查碼 CRC 計算器 大小端转换后 CRC检查码为 AB 89 说明 这个计算器还是可以用的 第二种 On line CRC calculation and free library 二
  • odoo.service.server: Thread <Thread(odoo.service.cron.cron0, started daemon 139767179863808)> virtua

    这个日志消息表示在 Odoo 服务器的某个线程中达到了虚拟实时限制 具体来说 这是在执行某个任务时 线程使用了超过允许的时间限制 日志中的详细信息包括 时间戳 2023 09 03 14 24 55 333 19479 警告级别 WARNI
  • spring mvc踩坑 - jackson解析框架返回json多一层双引号

    问题 两套业务逻辑代码相同 但返回的数据不同 导致相同的前端代码用eval解析时出错 其中一个多了一层双引号 分别为 aaa 1 aaa 1 服务端代码 RequestMapping method RequestMethod POST pa
  • sqli labs less 21

    这题与less 20 相似 只不过cookie需要经过base64 编码之后才能注入 这一题就是比较麻烦其他没啥 还有就是 闭合语句 admin2 union select 1 2 3 base64编码为 YWRtaW4yJykgdW5pb
  • 单向循环链表(如何实现约瑟夫环)

    约瑟夫问题 总共有n个人排成一圈 从某个人开始 按顺时针方向依次编号 从编号为1的人开始顺时针报数1 下一个报号2 报到m的人退出圈子然后重新从1开始顺时针报数 这样不断循环下去 圈子里的人将不断减少 要求全部人员输出退出顺序 includ
  • chatGPT对企业的发展有什么影响

    ChatGPT目前正在全世界范围内掀起风暴 成为炙手可热的一个名词 作为基于人工智能的工具的最新产品 目前ChatGPT呈现给我们的似乎只是足够有趣 且从目前已知的信息来看 它似乎还没有任何商业运作相关的计划 大多应用聚焦在其可以撰写论文
  • Unity进阶–通过PhotonServer实现人物移动和攻击–PhotonServer(五)

    文章目录 Unity进阶 通过PhotonServer实现人物移动和攻击 PhotonServer 五 DLc 消息类和通信类 服务器 客户端 Unity进阶 通过PhotonServer实现人物移动和攻击 PhotonServer 五 D
  • CTF-PWN-buuctf-others_shellcode-系统int80调用的使用方法

    CTF PWN 来源 https buuoj cn challenges 内容 附件 https pan baidu com s 1twNiCnqBL17 WuQr1NdGBQ pwd g9by 提取码 g9by 答案 flag d07d7
  • CSS属性详解——使用color属性设置文字颜色

    CSS 是一种用于网页布局控制的语言 其中 color 属性用于为网页文字设置颜色 在本文中 我们将深入介绍 color 属性的详细语法和使用方式 帮助您轻松掌握使用 color 属性语法 color 属性用于为文本设置颜色 其语法非常简单
  • Tensorflow④——常用TensorFlow 学习率函数、激活函数、损失函数API及代码实现

    import os os environ TF CPP MIN LOG LEVEL 2 导入所需模块 import tensorflow as tf from sklearn import datasets from matplotlib
  • PTA L3 题目合集(暂不更新)

    L3 001 凑零钱 30 分 01背包问题记录路径 include