2024牛客多校第5场

news/2025/1/19 11:33:22/文章来源:https://www.cnblogs.com/liyishui2003/p/18337761

很神奇的场hh,大家一起坐牢,多好啊!

B

找规律,这种题一般都是多模拟几个数据然后猜出来

#include<bits/stdc++.h>
using namespace std;inline int read()
{int x=0;bool f=1;char ch=getchar();for(;ch<'0'||ch>'9';ch=getchar())f^=(ch=='-');for(;ch>='0'&&ch<='9';ch=getchar())x=(x<<1)+(x<<3)+(ch^48);return f?x:-x;
}
int n,m,a,b;
bool sol(){n=read(); m=read();a=read(); b=read();if (n>m) swap(n,m);if ((n&1)&&(m&1)) return false;if (n==1&&m==2) return true;if (a==0&&b==0) {return false;}if (a==1&&b==1) return true;if (a==1&&b==0){if (n==1&&m%2==0) return true;return false;}if (a==0&&b==1){if (n==1&&m%2==0) return false;return true;}return true;
}
signed main()
{int T;T=read();while(T--) if (sol()) cout << "Yes" << endl;else cout << "No" << endl;return 0;
}

E

显然如果ai>bi,先手肯定赢

如果ai==bi,如果这个位置谁先操作谁赢

假设有cnt个ai==bi的,cnt为奇数是A能赢cnt/2+1,cnt为偶数时A赢cnt/2

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5+5;
int a[N],b[N];
void solve(){int n;cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++) cin>>b[i];int cnt=0,eq=0;for(int i=1;i<=n;i++){cnt+=(a[i]>b[i]);eq+=(a[i]==b[i]);}cout<<cnt+(eq+1)/2<<'\n';
}
int main(){ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--){solve();}
}

L

发现如果A[i]> A[I-1],则把A[i]-1,A[i-1]+1不会使答案更差

证明:

1.A[i]原本=A[i-1]+1,减完后相当于A[i]和A[i-1]互换,乘积不变

2.A[i]>A[I-1]+1,减完后更平均了,根据均值不等式,肯定最好

#include<bits/stdc++.h>
using namespace std;
const int N =105;
const int mod = 998244353;
typedef long long ll;
int a[N];
void solve(){int n;cin>>n;for(int i=1;i<=n;i++) cin>>a[i];priority_queue<int,vector<int>,greater<int>>q;q.push(a[1]);for(int i=2;i<=n;i++){    while(a[i]>q.top()){int u=q.top();q.pop();a[i]--;u++;q.push(u);}q.push(a[i]);}ll ans=1;while(!q.empty()){ans*=1ll*q.top();ans%=mod;q.pop();}cout<<ans<<"\n";
}
int main(){ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--){solve();}
}

H

暴搜过的,发现由于是下降的,所以每从u走到一个新的点v,u点的邻点都不能走,ban掉就行

发现图越稠密,每次ban掉的点越多,很快就走到底了

如果图不稠密,那走法很少,也很快就走到底了

比较严格的证明:

 

J

填坑中..

很神奇的dp,赛时一直不知道怎么去完备、不重不漏地数完一棵树

 

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

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

相关文章

15. 序列化模块json和pickle、os模块

1. 序列化模块1.1 序列化与反序列化 (1)序列化 将原本的python数据类型字典、列表、元组 转换成json格式字符串的过程就叫序列化 (2)反序列化 将json格式字符串转换成python数据类型字典、列表、元组的过程就叫反序列化 (3)为什么要序列化 计算机文件中没有字典这种数据类…

AI表情神同步!LivePortrait安装配置,一键包,使用教程

快手在AI视频这领域还真有点东西,视频生成工具“可灵”让大家玩得不亦乐乎。现在又开源了一款超好玩的表情同步(表情控制)项目。 一看这图片,就知道是小视频平台出的,充满了娱乐性。发布没几天就已经有8000+Star。项目简介 LivePortrait 是一款由快手团队开发的高效肖像动…

右下角wifi图案点击无可用wifi/更新网卡驱动时遇到错误代码56的解决办法

1.问题 如下图所示,我这里遇到明明有wifi,但是无法检索到任何有用wifi的情况。2.解决方法 参考:电脑WIFI消失,网卡驱动Intel(R) Wi-Fi 6 AX201 160MHz感叹号报错 解决方案集合 —— 无线WI-FI功能缺失,Intel(R) Wi-Fi 6 AX201 160MHz异常,驱动更新错误 2.1 问题原因 当时…

单例模式及其思想

本文包括以下几点↓结论:设计模式不是简单地将一个固定的代码框架套用到项目中,而是一种严谨的编程思想,旨在提供解决特定问题的经验和指导。 单例模式(Singleton Pattern) 意图 旨在确保类只有一个实例,并提供一个全局访问点以访问该实例。 适用性 当你希望系统中只有一…

数组part02

2024年8月1日,今天学习了数组的第二部分。 1.巩固了昨天的双指针问题,即滑动窗口/双指针;注意,双指针是为了减少for循环,使用的时候小心循环的写法和快慢指针的增长方法。 2.学习了数组模拟的螺旋矩阵问题,注意循环不变量; 3.学习了前缀和的方法,前缀和常用来解决区间和…

windwos文件句柄数限制

1、修改注册表,位置如下: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Windows2、设置 1、GDIProcessHandleQuota此项设置GDI句柄数量,默认值为2710(16进制)/10000(10进制),该值的允许范围为 256 ~ 16384 ,将其调整为大于默认的10000的值。如果您的…

P5665 [CSP-S2019] 划分

讲解 P5665 [CSP-S2019] 划分。由朴素 dp 入手,先用二分优化,然后用走指针优化,之后注意到单调性,将状态数压缩,然后使用单调队列优化转移。思路: 首先求出 \(a\) 的前缀和数组 \(s\)。 考虑动态规划,令 \(dp_{i,j}\) 表示以 \(i\) 结尾,末尾有 \(j\) 个为一组的最小答…

「代码随想录算法训练营」第二十六天 | 贪心算法 part4

452. 用最少数量的箭引爆气球题目链接:https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/ 题目难度:中等 文章讲解:https://programmercarl.com/0452.用最少数量的箭引爆气球.html 视频讲解:https://www.bilibili.com/video/BV1SA41167xe 题目状态…

dbnet crnn java中文ocr识别

Table of ContentsAbout Getting Started Result ContactAbout完整项目:https://github.com/jiangnanboy/dbnet_crnn_java本项目利用java,javacv,onnx以及djl矩阵计算等技术加载文本检测模型dbnet与文本识别模型crnn,完成ocr的识别推理。 包含模型的完整项目请从右侧releases…

变量及标识符

变量 变量的概念 内存中的一个存储区域 该区域的数据可以在同一类型范围内不断变化 变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值 变量的作用: 用于在内存中保存数据 使用变量注意: Java中每个变量必须先声明,后使用 使用变量名来访问这块区域的数据 变量…