CF999

news/2025/1/30 19:06:19/文章来源:https://www.cnblogs.com/wmmdbk/p/18695288

A

link

首先,每次操作(第一次除外)之前\(s\)一定是一个奇数,那么我们要再加一个奇数才能让它变为偶数分数加一。
那么就是说操作过至少一次后,有几个奇数就有几分。
那么如果有至少一个偶数,那么第一次用偶数可以得分,后面再用奇数可以得分,偶数的不了分,最终得分就是奇数个数加一,如果没有偶数,第一次必须用奇数,得不了分,后面一直用奇数,最终得分就是奇数个数减一。

点击查看代码
#include<bits/stdc++.h>using namespace std;int n;
int a[105];
bool is_ou;
int sum_ji;void qwq(){cin >> n;is_ou = 0;sum_ji = 0;for(int i = 1;i <= n;++ i){cin >> a[i];if(a[i]%2 == 0) is_ou = 1;else sum_ji++;}if(is_ou){cout << sum_ji+1 << endl;}else{cout << sum_ji-1 << endl;}}signed main(){int t;cin >> t;while(t--) qwq();return 0;} 

B

link

我们设\(x\)为上底,\(y\)为下底,\(c\)为腰。
那么\(x+c+c<y\)才能组成梯形,即\(2c<y-x\)
那么我们要让腰尽可能长,上底与下底之差尽可能小。
寻找至少有两个的最大数为腰,找差最小的两个数为上下底,判断是否满足\(x+c+c<y\)即可。

点击查看代码
#include<bits/stdc++.h>using namespace std;int n;
int a[200005];
int b[200005];
int m;
int x,y,c;
map<int,int> js;void qwq(){js.clear();x = y = c = 0;cin >> n;for(int i = 1;i <= n;++ i)cin >> a[i],js[a[i]]++;sort(a+1,a+1+n);for(int i = n;i >= 1;-- i){if(js[a[i]] >= 2){js[a[i]] -= 2;c = a[i];break;}}if(c == 0){cout << -1 << endl;return;}m = 0;for(int i = 1;i <= n;++ i)if(a[i] != a[i-1]&&js[a[i]]) b[++m] = a[i];int ans = 1e8+5;for(int i = 1;i <= m;++ i){if(js[b[i]] >= 2){ans = 0;x = y = b[i];}if(i != 1&&b[i]-b[i-1] < ans){ans = b[i]-b[i-1];x = b[i-1];y = b[i];}}if(x+c+c > y)cout << x << " " << c << " " << c << " " << y << endl;else cout << -1 << endl;}signed main(){int t;cin >> t;while(t--) qwq();return 0;}

C

link

\(DP\),设\(f_{i,0/1}\)代表考虑到第\(i\)个人,他是好人(\(1\))或骗子(\(0\))的方案数。
那么如果他是骗子,前一个人一定要是好人。
如果他是好人,分两种情况:
1.前一个人是好人(\(a_i=a_{i-1}\)时)。
2.前一个人是骗子,那么前前一个人一定是好人(\(a_i=a_{i-2}+1\)时)。
最后答案是最后一个人是骗子或好人的方案数和。

点击查看代码
#include<bits/stdc++.h>#define mod 998244353using namespace std;int n;
int a[200005];
int f[200005][2];void qwq(){cin >> n;for(int i = 1;i <= n;++ i) cin >> a[i];memset(f,0,sizeof(f));f[1][0] = 1;if(a[1] == 0) f[1][1] = 1;for(int i = 2;i <= n;++ i){f[i][0] = f[i-1][1];if(a[i] == a[i-1]) f[i][1] = f[i-1][1];if(a[i] == a[i-2]+1)f[i][1] += f[i-1][0],f[i][1] %= mod;}cout << (f[n][0]+f[n][1])%mod << endl;}signed main(){int t;cin >> t;while(t--) qwq();return 0;}

D

link

差不超过\(1\)才可以相加是一个很好的性质,因为这样\(b\)数组中的一个数\(x\)要么是\(b+b\),要么是\(b+(b+1)\),那么\(b=\lfloor \frac{x}{2} \rfloor\),这样一个数\(x\)的来源就唯一确定了。
那么我们就递归拆分每一个\(b\)中的数,直到\(a\)中有拆出来的数,如果拆到\(0\)了也没找到,则凑不出。
都凑出来了并且\(a\)\(b\)的和相等即可。

点击查看代码
#include<bits/stdc++.h>#define int long longusing namespace std;int n,m;
int a[200005];
int b[200005];
int s;
map<int,int> am;bool find(int x){if(am[x]){am[x]--;return true;}if(x == 0) return false;int b1 = x/2;int b2 = x-b1;if(find(b1)&&find(b2)) return true;else return false;
}void qwq(){s = 0;am.clear();bool f = 1;cin >> n >> m;for(int i = 1;i <= n;++ i)cin >> a[i],am[a[i]]++,s += a[i];for(int i = 1;i <= m;++ i){cin >> b[i];s -= b[i];if(f&&(!find(b[i]))){f = 0;}}if(f&&s == 0) cout << "Yes\n";else cout << "No\n";}signed main(){int t;cin >> t;while(t--) qwq();return 0;}

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

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

相关文章

1.30

1.30 Maze - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)从一个空格走cnt - k个点并标记,然后将没有标记的点设为A即可import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputS…

java中jdk的下载地址

java中jdk的下载地址 https://www.oracle.com/java/technologies/downloads/#java17-windows作者:流年少年 出处:https://www.cnblogs.com/ishoulgodo/ 想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!如果觉得这篇文章…

对国外某网站的SQL注入实战

对国外某网站的SQL注入实战 记录一次某功能点遇到SQL注入漏洞尝试丢到SQLMAP运行虽然成功,但是有些SQL注入类型存在但SQLMAP未识别出来,随后便使用手工注入的方式获得数据库相关数据的随笔 功能点某网站存在URL如下的GET形公告展示点: /xxx/index.php?mod=detail&_id=23…

@所有Mac用户 刺客信条系列登陆Mac平台!

🌟【历史性的跨越】🌟 在无数Mac游戏爱好者的热切期盼中,终于将风靡全球的3A级巨作——刺客信条🌟【历史性的跨越】🌟 在无数Mac游戏爱好者的热切期盼中,终于将风靡全球的3A级巨作——刺客信条系列,成功移植至MacOS系统!这意味着,无论是穿梭于中世纪欧洲的隐秘巷弄…

五、USB PD协议层之控制消息

当Message Header中的Number of Data Objects字段设置为0,控制消息仅由一个Message Header和一个CRC组成。协议层发起控制消息(如,Accept Message, Reject Message 等)。 控制消息类型在消息头的Message Type字段(位4…0)中指定,并汇总在下表中。1、GoodCRC Message Good…

htb support walkthrough window 域渗透

nmap udp端口 nmap -sU 10.10.11.174 Starting Nmap 7.95 ( https://nmap.org ) at 2025-01-30 01:17 UTC Nmap scan report for 10.10.11.174 Host is up (0.092s latency). Not shown: 996 open|filtered udp ports (no-response) PORT STATE SERVICE 53/udp open domai…

01 设计测试用例

设计测试用例的万能思路 针对某个物品/功能进行测试。 万能思路:功能测设 + 界面测试 + 性能测试 + 兼容性测试 + 易用性测试 + 安全测试。总结: 功能测试: 水杯:装水、喝水... 注册场景:注册 + 登录 ​ 想象日常使用中的注册场景有哪些功能。 界面测试: 非软件:颜色…

C++ 实现一个vector

C++如何写一个带有allocator的vector 在STL中,容器一般都有一个allocator模板参数。 allocator用于获取/释放内存及构造/析构内存中元素的分配器。类型必须满足分配器 (Allocator) 。如果 Allocator::value_type 与 T 不同,那么行为未定义(C++20 前)程序非良构(C++20 起)。 模…

使用xtrabackup对MySQL8.0.34进行备份和恢复

Percona XtraBackup 是一款开源的、用于 MySQL 和 MariaDB 的热备份工具,它可以在不停止数据库服务的情况下进行全量或增量备份,并且能够快速恢复数据。以下从特点、安装、备份与恢复操作、注意事项等方面进行详细介绍。 特点热备份:可以在数据库正常运行时进行备份,不影响…

【THM】Search Skills(搜索技巧)-学习

学习有效地搜索互联网并使用专门的搜索引擎和技术文档。本文相关的TryHackMe实验房间链接:https://tryhackme.com/r/room/searchskills 本文相关内容:学习有效地搜索互联网并使用专门的搜索引擎和技术文档。介绍 在 Google 上快速搜索“学习网络安全-learn cyber security”返…

使用ailabel对图片进行标注,vue3/js+ailabel.js

​ 一、实现效果 对方案可以添加多张图片,并在图片上进行标注。并且可以通过下方的缩略图切换方案图片 (demo) 二、效果图三、页面元素 <div class="w-full overflow-auto p-2" style="height: calc(100% - 7rem)"><div class="btns mb-2…

【模拟电子技术】17-基本放大电路的派生电路与场效应管放大电路的分析原则

【模拟电子技术】17-基本放大电路的派生电路与场效应管放大电路的分析原则 现在提出要求,要用NPN,PNP三极管各一个来构造放大电路,要求在大功率的时候,从输出端看都是PNP型,复合管就可以做到这一点可以看出第一个管子的功率肯定没第二个大,但是第一级管子决定了复合管的类…