2024.5.18 杂题

news/2025/2/13 20:25:57/文章来源:https://www.cnblogs.com/spaceswalker/p/18199272

2024.5.18 杂题

「SMOI-R1」Apple

两个操作,修改元素,求子集和。

高位前缀和不会。考虑朴素 dp 转移

\(f[i]\) 表示二进制下长度为 \(n\) 的数前 \(i\) 位为 \(1\),后边为 \(0\) 的子集和。理论来说可以转移,但是比较麻烦,考虑优化状态,\(f[i][j]\) 表示前 \(\frac{n}{2}\) 位为 \(i\)\(\frac{n}{2}\) 位为 \(j\) 的子集和。在插入一个 \(a_i\) 时,枚举前 \(\frac{n}{2}\) 位的超集 \(X\),令 \(f[X][y] += a_i\) ,删除时减去即可。

在查询 \(i\) 的子集和时,枚举后 \(\frac{n}{2}\) 的子集 \(Y\),答案 \(\sum_{Y \subseteq y} f[x][Y]\)

这些操作与树状数组很类似,仿照树状数组写一个数据结构优化掉,复杂度大概是 \(O(Q \sqrt{N})\)

const int N = (1 << 20) + 10;
const int M = (1 << 10) - 1;int n, q;
int a[N];struct Tree
{int c[M + 2][M + 2];void add(int x, int y) {int X = x >> 10, Y = x & M;if (n <= 10) {c[0][Y] += y; return ;}for (rint i = X; i <= M; i = (i + 1) | X) c[i][Y] += y;}int query(int x) {int X = x >> 10, Y = x & M, ans = 0;for (rint i = Y;; i = (i - 1) & Y) {ans += c[X][i];if (!i) break;}return ans;}void clear(int x, int y) {int X = x >> 10, Y = x & M;if (n <= 10) {c[0][Y] -= y; return ;}for (rint i = X; i <= M; i = (i + 1) | X)c[i][Y] -= y;}	
} tree;signed main() 
{ios::sync_with_stdio(0);cin.tie(0);	cout.tie(0);cin >> n >> q;for (rint i = 0; i < (1 << n); i++) {cin >> a[i];tree.add(i, a[i]);}while (q--) {int op, x;cin >> op >> x;if (op == 1) {cout << tree.query(x) << endl;} else {int y;cin >> y;tree.clear(x, a[x]);a[x] = y;tree.add(x, a[x]);}}return 0;
}

『STA - R5』RDG

不会博弈论,考虑 dp

\(f_{i,j}\) 表示考虑从 \(a_i\)\(a_n\) 这一段,前面进行了 \(j\)\(1\) 操作的情况下先手能不能赢。\(a\) 需要从小到大排序。

\[f_{i,j}=\begin{cases}1&j>a_i\\f_{i+1,j}&j=a_i\\\neg f_{i+1,j}\operatorname{or}\neg f_{i,j+1} &j<a_i\\\end{cases} \]

\(j\le a_i-2\) 时为 \(01\) 相间。所以保留 \(O(1)\) 状态即可通过本题。

bool c(int i, int j) 
{if (i == n || j > a[i]) return 1;if (j < a[i] - 3) j += (a[i] - 2 - j) / 2 * 2;if (!v[i][a[i] - j]) {v[i][a[i] - j] = 1;if (a[i] == j) f[i][a[i] - j] = c(i + 1, j);else f[i][a[i] - j] = !(c(i + 1, j) & c(i, j + 1));}return f[i][a[i] - j];
}signed main() 
{int T;cin >> T;while (T--){cin >> n;for (rint i = 1; i <= n; i++) cin >> a[i];for (rint i = 1; i <= n; i++) for (rint j = 0; j <= 3; j++) f[i][j] = v[i][j] = 0;sort(a + 1, a + n + 1);if (c(1, 0)) cout << "Alice" << endl;else cout << "Bob" << endl;}return 0;
}

CF1965E

毒瘤构造,虽然尺子姐已经在题解区给出了构造方案,但我还是想自己去搭一搭,于是找 hanss6 要了个 MC。

图中玻璃表示临时空气,混凝土即为不同色方块。

最上层所有混凝土均至少紧挨着一格空气,只需把所有空气替换成一种颜色的混凝土就连通

int n, m, k;
int a[N][N], x[N][N], y[N][N];
vector<tuple<int, int, int, int>> s;signed main() 
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);	cin >> n >> m >> k;for (rint i = 1; i <= n; i++)for (rint j = 1; j <= m; j++)cin >> a[i][j];for (rint i = 1; i <= n; i++){for (rint j = 1; j <= m; j++){x[i][j] = i;y[i][j] = j;}}for (rint z = 1; z <= m; z++){if(z >= 2) {for (rint i = 1; i <= n; i++)for (rint j = 1; j <= m; j++) s.ep(x[i][j], y[i][j], z, a[i][j]);}for (rint i = 1; i <= n; i++)for (rint j = 1; j <= m; j++)  {if(j == m - z + 1) {for (rint y = j + 1; y <= 2 * j - 1; y++)s.ep(i, y, z, a[i][j]);x[i][j] = i;y[i][j] = 2 * j - 1;}}}int _m = m;for (rint p = 1; p <= k; p++){for (rint i = 1; i <= n + 1; i++) {for (rint j = 1; j <= 2 * m - 1; j++) {if (i == n + 1) s.ep(i, j, _m, p);else if (j % 4 == 2 || j >= 2 * m - 3 && !(j % 2)) s.ep(i, j, _m, p);else if ((j & 1) && _m != m && a[i][(j + 1) / 2] >= p) s.ep(i, j, _m, a[i][(j + 1) / 2]);}}_m++;}cout << s.size() << endl;for (auto it : s){cout << get<0>(it) << " ";cout << get<1>(it) << " ";cout << get<2>(it) << " ";cout << get<3>(it) << endl;}return 0;
}

饥饿的奶牛

考虑直接枚举每一个点。设 \(f[i]\) 为从开始到 \(i\) 时的答案。用 vector 存区间。对于区间 \(a_i\)

\[f[s_i.r] = \max_{0≤j≤s_i.l}{\{}f[j]\} \]

int n;
int f[N];
vector<int> a[N];signed main()
{cin >> n;for (rint i = 1; i <= n; i++){int x, y;cin >> x >> y;a[y].push_back(x);}for (rint i = 0; i <= M; i++){f[i] = f[i - 1];int k = a[i].size();for (rint j = 0; j < k; j++){int val = i - a[i][j] + 1;if (a[i][j] >= 1) f[i] = max(f[i], f[a[i][j] - 1] + val);else f[i] = max(f[i], val);}}cout << f[M] << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/708194.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【日记】母亲生日,我在跟数字人民币 Battle(612 字)

正文昨天跟奇安信 Battle,今天跟数字人民币 Battle。鬼知道数字人民币客户端怎么写的,我弄了一天,隐藏 Root,禁止读取应用列表,权限开放,用另一个手机或 iPad 登陆,都不行。全在提示 “检测到环境异常,暂无法提供数字人民币服务”。最后给我逼急了,用另外两个同事手机…

【工具使用】【Arthas】平时经常使用到的命令

1 前言 Arthas,应该大家都用过吧,比如我最近项目 uat 的时候,要查看某些请求比较耗时,查看耗时在哪些地方,再比如一些配置变量值配置的对不对尤其跟一些第三方交互的时候,配置的对不对需要实时查看校验下等,都可以通过Arthas 查看。 Arthas 地址:使用文档 Arthas 的下…

C++学习----gcc

gcc编译步骤 静态库使用步骤 hello_fn.h #ifndef _HELLO_FN_H #define _HELLO_FN_Hvoid hello(const char* name);#endif hello_fn.c #include <stdio.h> #include "hello_fn.h"void hello(const char* name) {printf("hello %S!!!\n", name); } ma…

Less靶场SQL注入通关宝典

这篇文章是一个 sqil-labs 靶场的保姆级教学,从安装、配置、场景通关都有详细的介绍,其中场景通关是我们这篇文章的重点。 首先我们要了解 sqli-labs 靶场是什么?sqli-labs 靶场是刚刚接触 SQL 注入的新手,了解 SQL 注入、练习 SQL 注入的一个很方便,很实用的一个靶场,配…

ASE160N08-ASEMI低压N沟道MOS管ASE160N08

ASE160N08-ASEMI低压N沟道MOS管ASE160N08编辑:ll ASE160N08-ASEMI低压N沟道MOS管ASE160N08 型号:ASE160N08 品牌:ASEMI 封装:TO-247 批号:2024+ 沟道:N沟道 导通内阻RDS(ON)Max:4.2mΩ 启动电压:2V-4V 最大漏源电流(Id):160A 漏源击穿电压(VRM):80V 安装方式:…

(FPGA) XCKU15P-1FFVE1517E XCKU15P-3FFVE1517E XCKU15P-2FFVE1517E IC适用于智能IP集成的SmartConnect技术

Kintex UltraScale+™ FPGA为需要高端功能(包括 33Gb/s 收发器和 100G 连接内核)的应用提供了经济高效的解决方案。Kintex™ UltraScale+™ 器件在 FinFET 节点中提供高性价比,为需要高端功能(包括 33Gb/s 收发器和 100G 连接内核)的应用提供了经济高效的解决方案。该中端…

64-SpringBoot源码分析

Starter 是什么? 我们如何使用这些 Starter? 为什么包扫描只会扫描核心启动类所在的包及其子包? 在 SpringBoot 启动过程中,是如何完成自动配置的? 内嵌 Tomcat 是如何创建并启动的? 引入了 web 场景对应的 Starter,SpringMVC 是如何完成自动装配的?1. 源码环境构建 ht…

免费将人像转动漫,多种效果可选,分享下自己开发的微信小程序

先上一张效果图: 支持多种风格: 支持历史记录: 历史记录详情: 支持将历史记录分享给好友: 小程序接口用的阿里云的两个接口,分别是: 第一排特效是同步请求,用的人物动漫化接口:https://help.aliyun.com/zh/viapi/developer-reference/api-animation-of-characters?sp…

Ubuntu下darknet yolo4的编译

Ubuntu下darknet yolo4的编译 首次编辑:24/5/17/23:16 最后编辑:24/5/18/12:47 参考链接YOLOv4-darknet installation and usage on your system (Windows & Linux) Installing and Building Darknet 官网0 说明 此博客只记录darknet yolo4 + opencv的编译安装,不涉及cu…

使用django_celery_beat在admin后台配置计划任务

使用步骤 安装包 pip install django-celery-beatapp注册 app注册INSTALLED_APPS = [....django_celery_beat,]配置文件:屏蔽原来的调度器 CELERY_BEAT_SCHEDULER = django_celery_beat.schedulers.DatabaseScheduler设置时区 LANGUAGE_CODE = zh-hans TIME_ZONE = Asia/Shang…

Celery admin监视任务

在控制台监控任务执行情况,还不是很方便,最好是能够通过web界面看到任务的执行情况,如有多少任务在执行,有多少任务执行失败了等 这个Celery也是可以做到了,就是将任务执行结果写到数据库中,通过web界面显示出来。 这里要用到django-celery-results插件。 通过插件可以使…

4、单行函数

最近项目要用到Oracle,奈何之前没有使用过,所以在B站上面找了一个学习视频,用于记录学习过程以及自己的思考。 视频链接: 【尚硅谷】Oracle数据库全套教程,oracle从安装到实战应用 如果有侵权,请联系删除,谢谢。本文主要讲解以下几点:SQL中不同类型的函数在 SELECT 语句…