河南萌新联赛2024第(一)场 补题报告

news/2024/9/19 2:18:55/文章来源:https://www.cnblogs.com/SonyaXu/p/18308652

小蓝的二进制询问

image


找规律,可以发现 把从0开始的十进制数字转化为二进制。每一个二进制位有0或1两种状态。从低到高的第一位以2为周期,第二位以4为周期,第三位以8为周期……也就是说第n位以 2^{n} 为周期。每个周期都是前一半是0,后一半是1 。


举例:
000 001 010 011 100 ……

#include <bits/stdc++.h>
using namespace std;
#define int long long 
const int N=100;
long long f[N][N];
int a[N];
int k;
int mod = 998244353;
int c;
int ans = 0;
int get(int x)   //计算x的二进制长度
{int cnt = 0;while(x){x/=2;cnt++;}return cnt;
}
int solve(long long x)
{ans = 0 ;int cnt = get(x);x++;     //因为周期是从0开始算的for(int i=1;i<=cnt;i++){int tt = pow(2,i);      //第i位的周期ans += (x/tt)*(tt/2);   //0~x 第i位1的个数ans %= mod;ans += max(0ll,x%tt-tt/2);  //周期内仔细判断ans %= mod;}return ans;
}signed main()
{int t, l, r;cin >> t;while(t--){cin >> l >> r;int ans = (solve(r) - solve(l-1)+mod) % mod;    //差分求区间cout << ans << endl;}return 0;
}

旅途的终点


注意!是按既定的路线旅游的!所以不能简单地通过排序找出k个最大的点。
正解:维护一个元素从小到大的大小为k的优先队列,从1~n按顺序放入数。当队列满时,从队首弹出最小的元素,放入接下来的元素。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define int ll
typedef pair<int,int> PII;
typedef unsigned long long ull;
const int ddx[8]={-1, 0, 1, 0, 1, -1, 1, -1};
const int ddy[8]={0, 1, 0, -1, -1, 1, 1, -1};
const int INF=0x3f3f3f3f;
const int N=6e5+10;
int n,m,k;
int a[N];
int sum = 0;
void solve()
{cin>>n>>m>>k;for(int i=1;i<=n;i++) cin>>a[i];priority_queue<int,vector<int>,greater<int>>q;for(int i=1;i<=n;i++){q.push(a[i]);if(q.size()>k){sum+=q.top();q.pop();}if(sum>=m){cout<<i-1<<endl;return;}}cout<<n<<endl;return;
}
signed main() {ios::sync_with_stdio(0);cin.tie(0);int t=1;//cin >> t;while(t--) {solve();}return 0;
}

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

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

相关文章

AMD笔记本-VMware报错:此平台不支持虚拟化的 amd-vrvi

原因:Hyper-V与VMware冲突以及Windows Defender的内核隔离 一 、关闭Windows 功能 ​ ​ 二、关闭内核隔离 ​

记录一次在欧拉(openEuler22.03LTS-SP4)系统下安装(踩坑)Freeswitch1.10.11的全过程

在openEuler下编译安装Freeswitch1.10.11的踩坑全过程记录...目录前言安装环境1. 下载Freeswitch1.1 git clone 下载freeswitch库1.2 官网下载2. 开始安装前的工作2.1 安装编译时需要的环境【先安装这个!】2.2 configure前需要安装的库2.2.1. spandsp2.2.2. sofia-sip2.2.3. l…

njs最详细的入门手册:Nginx JavaScript Engine

NJS是Nginx的Javascript引擎,具有极度轻量小巧,强大性能等特色,是全部同步的nginx-Lua替代品 但是网上教程太少了,无奈花一天时间写了这篇文章,讲了NJS的常见用法,希望能帮到大家原文链接:https://hi.imzlh.top/2024/07/08.cgi 关于njs 首先,njs似乎在国内外都不受关注…

samber/lo 提供了丰富的函数用于操作数组和切片

Go 语言的 Lodash 风格库 原创 lo 源自开发者2024年07月17日 23:07 广东 听全文源自开发者 专注于提供关于Go语言的实用教程、案例分析、最新趋势,以及云原生技术的深度解析和实践经验分享。 273篇原创内容公众号在 JavaScript 的世界里,Lodash 是一个家喻户晓的工具库,它提…

有向图的连通性(判强连通)

讲义 Kosaraju #include <bits/stdc++.h> using namespace std; const int N=1e4+5;int n, m, u1, v1, vis[N], vis2[N], cnt=0; vector<int> a[N], ra[N]; stack<int> st; void dfs(int u) {if (vis[u]) return ;vis[u]=1;for (int i=0; i<a[u].size…

HarmonyOS NEXT 学习笔记4--双向绑定$$

HarmonyOS NEXT 学习笔记4--双向绑定$$1.代码: @Entry @Component struct Page_checkbox {@StateisChecked:boolean = truebuild() {Column() {Text(this.isChecked + )Checkbox()// .shape(CheckBoxShape.ROUNDED_SQUARE)// 这里有坑,编译器会报错.select($$this.isChecked)/…

AI时代你一定要知道的Agent概念

这两年,随着人工智能(AI)和计算能力的发展,AI应用的落地速度大大加快。以ChatGPT为代表的AI应用迅速火遍全球,成为打工人的常用工具。紧接着,多模态、AI Agent等各种高大尚的名词也逐渐进入大众视野,吸引了大量关注。那么,到底什么是AI Agent?下文半支烟将带你详细了解…

读写给大家的AI极简史笔记01机器决策

读写给大家的AI极简史笔记01机器决策1. 识别、洞察、行动 1.1. 当你不知道该做什么时,智力就是你需要使用的东西。 1.1.1. [瑞士]让皮亚杰(Jean Piaget),生物学家和发展心理学家 1.2. 对于人类来说很难的事情,对机器来说很简单。 1.2.1. …

Extension Eslint is configured as formatter but it cannot format TypeScript-files.

应该是Eslint报错了。 到OUTPUT面板查看Eslint的输出信息。

SpringMVC-04-结果跳转及数据处理

1、结果跳转 SpringMVC中有两种实现 Handler 的方式:接口实现 和 注解实现, 两种方式对请求结果的处理各有不同。 1.1、接口Handler处理结果 public class ControllerTest implements Controller {@Overridepublic ModelAndView handleRequest(HttpServletRequest request, H…

SciTech-EECS-电路设计- PCB设计-PCB设计流程 + 元器件封装设计 + PCB设计规则 +PCB布局/布线/覆铜等设计

PCB(印刷电路板)设计, 是以"电路原理图"为根据实现电路设计者所需要的功能。 "PCB设计"主要指"版图设计", 需要考虑:"外部Connections(连接)"的布局, "内部Components(电子元器件)的优化布局, "金属连线" 和 "Via…