当前位置: 首页 > news >正文

牛客周赛 Round 108题解

ICPC World Finals

思路:直接根据题意去判断即可

#include<bits/stdc++.h>
using namespace std;
int a,b,c,d;
signed main()
{cin>>a>>b>>c>>d;    int flag=0;if(b<60||c<60||d<60)flag=1;if(a<425&&flag==1){cout<<"YES\n";}elsecout<<"NO\n";
}

小苯的数字排序

思路:用两个vector去收集奇数和偶数,然后排序,然后将偶数先输出,奇数后输出即可解决这个问题

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n;
int a[200005];
void solve()
{vector<int> ji;vector<int> ou;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];if(a[i]%2==1)ji.push_back(a[i]);elseou.push_back(a[i]);}sort(ou.begin(),ou.end());sort(ji.begin(),ji.end());for(int i:ou){cout<<i<<" ";}for(int i:ji){cout<<i<<" ";}cout<<"\n";
}
signed main()
{cin>>t;while(t--){solve();}return 0;
}

小苯的数字合并

思路:我们仔细想一下会发现答案的结果只与数组的元素个数有关,与值无关,我们在之上去写会发现,其实就是2的n-1次方,直接写个快速幂取模即可得到最后的答案

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n;
int a[200005];
int mod=998244353;
int fast(int a,int b)
{int base=1;while(b){if(b%2==1)base=base*a%mod;b/=2;a=a*a%mod;}return base;
}
void solve()
{cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}cout<<fast(2,n-1)<<"\n";return ;
}
signed main()
{cin>>t;while(t--){solve();}return 0;
}

小苯的子序列权值

思路:因为是按位与,所以只有所有数都是奇数的时候,最终的权值才是奇数,否则就是偶数,因此我们可以用数学的方法来解决,每个数都有两种可能,因此我们所有的选择的可能数是2^n-1

假设我们奇数的个数是x,那么选中的只有奇数的可能情况有2^x-1,用这两个数相减就是最终答案了

#include<bits/stdc++.h>
using namespace std;
#define int long longint t;
int n;
int a[200005];
int mod=998244353;
int fast(int a,int b)
{int base=1;while(b){if(b%2==1){base=base*a%mod;}a=a*a%mod;b/=2;}return base;
}
void solve()
{vector<int> ji,ou;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];if(a[i]%2==1)ji.push_back(a[i]);elseou.push_back(a[i]);}cout<<(fast(2,n)-fast(2,ji.size())+mod)%mod<<"\n";
}
signed main()
{cin>>t;while(t--)solve();return 0;
}

小苯的有趣数

思路:我们可以先将范围内的所有除了0以外的有趣的数存到一个num数组里面,然后用bitsit去递推状态,类似于动态规划,我们只要找到f[n][sum]的状态是否为1即可

我们的f[i][j]表示的意思是,是否能将j分成i个有趣的数,如果可以,值就是1,否则的话,前n-1个数事0,最后一个数事sum

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n;
int a[200005];
bitset<200005> f[205];
vector<int> num;
void ini()
{for(int i=1;i*i<40001;i++){string s=to_string(i*i);int sum=0;for(char c:s){sum+=c-'0';}int q=sqrt(sum);if(q*q==sum){num.push_back(i*i);}}f[0][0]=1;for(int i=0;i<100;i++){for(int x:num){f[i+1]|=f[i]<<x;}}
}
void solve()
{cin>>n;int sum=0;for(int i=1;i<=n;i++){cin>>a[i];sum+=a[i];}cout<<(f[n][sum]?n:n-1)<<"\n";
}
signed main()
{ini();cin>>t;while(t--){solve();}return 0;
}


文章转载自:

http://7jfmLtQi.yfnhg.cn
http://CmZs9jGZ.yfnhg.cn
http://oELvCvmz.yfnhg.cn
http://WCXMDKPX.yfnhg.cn
http://mrb9OcER.yfnhg.cn
http://qhT7iADd.yfnhg.cn
http://jM6m8Vz3.yfnhg.cn
http://AddkRkhm.yfnhg.cn
http://2LSFkb2V.yfnhg.cn
http://sW669HL9.yfnhg.cn
http://PplUE9Vj.yfnhg.cn
http://ArqyK4iu.yfnhg.cn
http://qJMH7mYt.yfnhg.cn
http://e2Bds4qU.yfnhg.cn
http://7iLb3rIX.yfnhg.cn
http://42xl0rkv.yfnhg.cn
http://Sn3qJ7pw.yfnhg.cn
http://VqzqQe2Q.yfnhg.cn
http://x0e4xyf7.yfnhg.cn
http://Ejvlydpx.yfnhg.cn
http://he7QY2nh.yfnhg.cn
http://uZ7HQe0U.yfnhg.cn
http://5IoC2YKL.yfnhg.cn
http://3i9kq7cD.yfnhg.cn
http://43UeBrRV.yfnhg.cn
http://fFQhvX37.yfnhg.cn
http://wBCFEqCM.yfnhg.cn
http://RTMnN3ng.yfnhg.cn
http://SsOB0Pqy.yfnhg.cn
http://lm8AQzP3.yfnhg.cn
http://www.dtcms.com/a/378905.html

相关文章:

  • Rocky9.0去堆叠双发arp(支持“ARP 广播双发”)
  • 「京墨」1.15.0 诗词、成语、对联、句子、诗歌…
  • AWS TechFest 2025: 风险模型的转变、流程设计的转型、生成式 AI 从实验走向实施的三大关键要素、评估生成式 AI 用例的适配度
  • 【Blender】二次元人物制作【二】:五官的制作
  • MinIO集群部署详细步骤(高性能的分布式对象存储系统)
  • 带地图的 RAG:多模态 + 地理空间 在 Elasticsearch 中
  • 使用 Spring AI Alibaba Graph 实现工作流
  • 【Debug日志 | DDP 下 BatchNorm 统计失真】
  • linux C 语言开发 (六) 程序的编辑和编译(vim、gcc)
  • 综合文化信息管理系统|基于java和小程序的综合文化信息管理系统设计与实现(源码+数据库+文档)
  • 20250911_10.1.11.46车辆定位aidata-01_Apache Doris分布式数据库全量备份(本地+异地)Python脚本
  • DenseNet网络
  • 2025胶水分装机服务商技术解析:聚焦高精度、智能化应用
  • Drawnix白板本地部署指南:cpolar实现远程创意协作
  • leetcode189.轮转数组
  • SPI设备驱动
  • 第七节,探索 ​​CSS 的高级特性、复杂布局技巧、性能优化以及与现代前端工作流的整合(二)
  • O3.2 opencv高阶
  • c语言,识别到黑色就自动开枪,4399单击游戏狙击战场,源码分享,豆包ai出品
  • Spring Boot 原理与性能优化实战
  • PHP 性能优化实战 OPcache + FPM 极限优化配置
  • solidity的高阶语法(完结篇)
  • 端–边–云一体的实时音视频转发:多路RTSP转RTMP推送技术深度剖析
  • OPC Client第10讲:实现主界面;获取初始界面传来的所有配置信息config【C++读写Excel:xlnx;ODBC;缓冲区】
  • git的使用命令
  • uniapp | 实现微信小程序端的分包处理
  • C/C++项目练习:命令行记账本
  • mes之生产管理
  • 【51单片机】【protues仿真】基于51单片机多功能电子秤系统
  • VSCode 下 PlatformIO 的使用