2023杭电第七场补题报告1002 1004 1011 1013

2023杭电第七场补题报告1002 1004 1011 1013

1002 B. Random Nim Game (hdu.edu.cn)

思路

手推一下就可以发现其实除了一次必定结束的其他情况概论都是 1 2 \frac{1}{2} 21

代码

#include <bits/stdc++.h>
using namespace std;
#define int long long
void solve();
signed main(){cin.sync_with_stdio(0);cin.tie(0);int T = 1;cin >> T;while(T--){solve();}return 0;
}void solve(){int n;cin >> n;int cn1 = 0;for(int i = 0;i < n;i++){int x;cin >> x;if(x > 1)cn1++;}if(cn1 == 0){if(n & 1){cout << "1\n";}else{cout << "0\n";}}else{cout << "499122177\n";}
}

1004 D. Medians Strike Back (hdu.edu.cn)

思路

若答案是 B,则构造为 {1, 3, 1*,* 3*, . . . ,* 1*,* 3*,* 2*,* 2*,* 1*,* 3*, . . .* },即 B 个 1 3 之后 2 2 构成一循环。**

代码

#include <bits/stdc++.h>
#define re register
using namespace std;
inline int read()
{re int t = 0;re char v = getchar();while (v < '0')v = getchar();while (v >= '0')t = (t << 3) + (t << 1) + v - 48, v = getchar();return t;
}
int t, n, ans;
int main()
{t = read();while (t--){n = read();re int l = 1, r = n;while (l <= r){re int mid = l + r >> 1, tmp = n / (mid + mid + 2);re int s = tmp * 2 + max(0, n % (mid + mid + 2) - mid - mid);if (s <= mid)ans = mid, r = mid - 1;elsel = mid + 1;}printf("%d\n", ans);}
}

1011 K. Three Operations (hdu.edu.cn)

思路

思考一下就会发现,直接选择收敛速度最快的进行,然后再在不选择最后两种情况的时候直接把当前数字加到结果中加速模拟。

代码

#include <bits/stdc++.h>
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define fi first
#define sc secondusing namespace std;
const int INF = 0x3f3f3f3f3f3f3f3f;
const int N = 1e6 + 10;
const int mod = 1e9 + 7;
typedef pair<int, int> PII;
int n;
int a[N];void solve() {int x, y;cin >> n >> x >> y;int res = 0;while (n != 0) {int x1 = n - 1, x2 = (n + x) / 2, x3 = sqrt(1.0 * (n + y));if(x2 >= n && x3 >= n){res += n;break;}if (x1 == min({x1, x2, x3}))n = x1;else if (x2 == min({x1, x2, x3}))n = x2;elsen = x3;res++;}cout << res << "\n";
}signed main() {IOS;int t = 1;cin >> t;for (int i = 1; i <= t; i++) {solve();}
}

1013 M. Minimal and Maximal XOR Sum (hdu.edu.cn)

思路

任选一个长度为 k 的区间,将其翻转,然后可以再利用 f(k) = k(k 2 1) 次交换相邻两个数的操作再将这个区间翻转回去,相当于什么操作都没有做,而却多了一个权值为 k 的操作和 f(k) 个权值为 2 的操作,所以:

• 如果 k 0 (mod 4) 或 k 1 (mod 4),则我们可以任何时候将答案(权值异或和)异或 k

• 如果 k 0 (mod 4) 或 k 1 (mod 4),则我们可以任何时候将答案异或 k 2。

代码

#include <bits/stdc++.h>
using namespace std;
#define int long long
inline int read() {char c = getchar();int x = 0, s = 1;while (c < '0' || c > '9') {if (c == '-') s = -1;c = getchar();}  //是符号while (c >= '0' && c <= '9') {x = x * 10 + c - '0';c = getchar();}  //是数字return x * s;
}void solve();
signed main() {int T;T = read();while (T--) {solve();}return 0;
}
class FenwickTree {private:vector<int> tree;int n;public:FenwickTree(int size) {n = size;tree.resize(n + 1, 0);}// 单点更新:将索引i位置上的值增加valvoid update(int i, int val) {i++;  // 树状数组的索引从1开始,所以将i加1while (i <= n) {tree[i] += val;i += lowbit(i);}}// 区间查询:计算前缀和,返回索引i位置的前缀和int query(int i) {i++;  // 树状数组的索引从1开始,所以将i加1int sum = 0;while (i > 0) {sum += tree[i];i -= lowbit(i);}return sum;}// 区间查询:计算区间[i, j]的和int query(int i, int j) { return query(j) - query(i - 1); }private:int lowbit(int x) { return x & -x; }
};
void solve() {int n;n = read();vector<int> a(n + 1);for (int i = 1; i <= n; i++) {a[i] = read();}if (n == 1) {cout << "0 1\n";return;}FenwickTree t(n + 1);int cnt = 0;for (int i = 1; i <= n; i++) {cnt += t.query(a[i], n);t.update(a[i], 1);}// cout << cnt << "\n";int ans1 = 0, ans2 = 0;if (cnt & 1) {ans1 = 2;int c = log2(n) + 1;ans2 = (1 << c) - 1;} else {ans1 = 0;int c = log2(n) + 1;ans2 = (1 << c) - 1;ans2 -= 2;}cout << ans1 << " " << ans2 << "\n";
}

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

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

相关文章

【hello C++】特殊类设计

目录 一、设计一个类&#xff0c;不能被拷贝 二、设计一个类&#xff0c;只能在堆上创建对象 三、设计一个类&#xff0c;只能在栈上创建对象 四、请设计一个类&#xff0c;不能被继承 五、请设计一个类&#xff0c;只能创建一个对象(单例模式) C&#x1f337; 一、设计一个类&…

Sentinel使用实例

不说了&#xff0c;直接上官方文档 https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/readme-zh.md Sentinel Example 项目说明 本项目演示如何使用 Sentinel starter 完成 Spring Clo…

【金融量化】对企业进行估值的方法有哪些?

估值的方法有哪些&#xff1f; 如何对企业进行估值&#xff1f;有2个方法估算。 1 绝对估值法 它是一种定价模型&#xff0c;用于计算企业的内在价值。 比如说你可以根据公司近N年的现金流情况。借此去预测未来N年的现金流情况。所有的现金流数据都可以在年报上查询到。最后…

ios 知识

IOS 类文件.h和.m中interface的区别 大家都知道我们在创建类文件时会发现&#xff1a; #import <UIKit/UIKit.h>interface ViewController : UIViewControllerend和 #import "ViewController.h"interface ViewController ()end那么他们之间有何区别呢&#x…

【Ajax】回调地狱解决方法

回调地狱&#xff08;Callback Hell&#xff09;是指在异步编程中&#xff0c;特别是在嵌套的回调函数中&#xff0c;代码变得深度嵌套、难以阅读和维护的现象。这通常发生在处理多个异步操作时&#xff0c;每个操作都依赖于前一个操作的结果。回调地狱使代码变得难以理解、扩展…

显卡服务器适用于哪些场景

显卡&#xff08;GPU&#xff09;服务器&#xff0c;简单来说&#xff0c;GPU服务器是基于GPU的应用于视频编解码、深度学习、科学计算等多种场景的快速、 稳定、弹性的计算服务。那么壹基比小鑫告诉你显卡服务器主要的用途有哪一些。 一、运行手机模拟器 显卡服务器可支持…

力扣:62. 不同路径(Python3)

题目&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&…

WebRTC音视频通话-WebRTC本地视频通话使用ossrs服务搭建

iOS开发-ossrs服务WebRTC本地视频通话服务搭建 之前开发中使用到了ossrs&#xff0c;这里记录一下ossrs支持的WebRTC本地服务搭建。 一、ossrs是什么&#xff1f; ossrs是什么呢&#xff1f; SRS(Simple Realtime Server)是一个简单高效的实时视频服务器&#xff0c;支持RTM…

STM32CubeIDE的安装和黑色主题及自动补全代码

STM32CubeIDE之前用过一点时间&#xff0c;但后来因为不习惯放弃了最近在新电脑上又用起来了&#xff0c;感觉相对之前好了很多&#xff0c;其实如果在工作中基本使用的是STM32,用意法的生态软件也挺好的&#xff0c;意法最近在这块也在大力发展&#xff0c;STM32CubeIDE安装包…

【BASH】回顾与知识点梳理(十三)

【BASH】回顾与知识点梳理 十三 十三. 文件内容查阅13.1 直接检视文件内容&#xff1a;cat, tac, nlcat (concatenate)tac (反向列示)nl (添加行号打印) 13.2 可翻页检视&#xff1a;more, lessmore (一页一页翻动)less (一页一页翻动) 13.3 资料撷取&#xff1a;head, tailhea…

【Linux】云服务器自动化部署VuePress博客(Jenkins)

前言 博主此前是将博客部署在 Github Pages&#xff08;基于 Github Action&#xff09;和 Vercel 上的&#xff0c;但是这两种部署方式对于国内用户很不友好&#xff0c;访问速度堪忧。因此将博客迁移到自己的云服务器上&#xff0c;并且基于 Jenkins&#xff08;一款开源持续…

浪涌保护器中SPD防雷模块的主要应用方案

浪涌保护器&#xff08;Surge Protective Device&#xff0c;SPD&#xff09;是一种用于限制瞬态过电压和导引泄放电涌电流的非线性防护器件&#xff0c;用以保护耐压水平低的电器或电子系统免遭雷击及雷击电磁脉冲或操作过电压的损害。SPD可以将过电压泄放到地线或限制过电压到…

类与对象(入门)

目录 1.前言 2.类的引入 3.类的定义 4.类的访问限定符及封装 4.1 访问限定符 4.2 封装 5.类的作用域 6.类的实例化 7. 结构体内存对齐规则 8.this指针 8.1 this指针的引出 8.2 this指针的特性 1.前言 C 是 基于面向对象 的&#xff0c; 关注 的是 对象 &#xff0c;…

【Spring】核心容器——依赖自动装配

Spring容器根据bean所依赖的资源在容器中自动查找并注入bean的过程叫做自动装配自动装配的方式 1、按类型 2、按名称&#xff08;耦合性较高&#xff09; 3、按构造方法 自动装配特点 1、自动装配用于对引用类型进行依赖注入&#xff0c;不能对简单类型进行操作 2、自动装配的…

多元最短路(Floyd)

是一个基于动态规划的全源最短路算法。它可以高效地求出图上任意两点之间的最短路 时间复杂度 O(n^3) 状态转移方程 f[i][j]min(f[i][j],f[i][k]f[k][j]) 核心代码 void floyd(){for(int k1;k<n;k)for(int i1;i<n;i)for(int j1;j<n;j)s[i][j]min(s[i][j],s[i][k…

Vue前端 更具router.js 中的meta的roles实现路由卫士,实现权限判断。

参考了之篇文章 1、我在登陆时获取到登录用户的角色名roles&#xff0c;并存入sessionStorage中&#xff0c;具体是在login页面实现&#xff0c;还是在menu页面实现都可以。在menu页面实现&#xff0c;可以显得登陆快一些。 2、编写router.js&#xff0c;注意&#xff0c;一个…

Spring 事务详解

目录 一、概述二、事务的特性&#xff08;ACID&#xff09;三、Spring 的事务管理3.1 编程式事务管理3.2 编程式事务管理 四、Spring 事务管理接口及其定义的属性4.1 PlatformTransactionManager:事务管理接口4.2 TransactionDefinition:事务属性4.3 TransactionStatus:事务状态…

【基础类】—前后端通信类系统性学习

一、什么是同源策略及限制 同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的关键的安全机制。源&#xff1a;协议、域名和端口&#xff0c; 默认端口是80 三者有一个不同&#xff0c;即源不同&#xff0c;就是跨域 ht…

Stable Diffusion+Temporal-kit 半虚半实应用

1.先下载temporal-kit,重启webui 2.下载好ffmpeg,配置好环境,下载Ebsynth 3.准备好你需要的视频,拖到预处理视频位置 4.填写参数,点解保存设置,然后并点击生成,会生成到目标文件夹的input位置 5.然后拉出input文件夹里面你想切换成处理的帧图片,然后填写prompt查看效…

中国省级、城市-数字经济创新创业、分项指数(2010-2020年)

一、数据介绍 数据名称&#xff1a;中国省级、城市-数字经济创新创业、分项指数 数据年份&#xff1a;2010-2020年 数据范围&#xff1a;31省、336个城市 数据来源&#xff1a;北大企业大数据研究中心 二、参考文献 参考文献&#xff1a; 戴若尘,王艾昭,陈斌开.中国数字…