关注
原来第二题就是一分钟一分钟的枚举,还是经验少了,想到了却没写出来 附上四道题代码,欢迎交流 第一题: 其实用位运算更好些,但是懒得搞了,题目说是非负数 #include<iostream>
#include<cstring>
using namespace std;
int countx(int x){
int cnt=0;
while(x){
if(x%2==1) cnt++;
x=x/2;
}
return cnt;
}
int main(){
int T,N;
cin>>T;
for(int i=1;i<=T;i++)
{
cin>>N;
int ans[35]={0};
int x,temp;
for(int j=1;j<=N;j++)
{
cin>>x;
temp=countx(x);
ans[temp]++;
}
int cnt=0;
for(int k=0;k<32;k++)
{
if(ans[k]) cnt++;
}
cout<<cnt<<endl;
}
return 0;
} 第二题: 一分钟维护一次,每次查询进出口状态,分四类情况即可 #include<iostream>
#include<algorithm>
#include<queue>
#include<cstring>
using namespace std;
bool check(int x,int t){
x=x-(x/(2*t))*2*t;
if(x>0 && x<=t) return 1;
else return 0;
}
int main(){
int T;
cin>>T;
int m,t,m1,t1,m2,t2;
while(T--){
int sum=0;
cin>>m>>t>>m1>>t1>>m2>>t2;
for(int i=1;i<=t;i++)
{
bool p1=check(i,t1);
bool p2=check(i,t2);
//if(p1==0 && p2==0) continue;
if(p1==1 && p2==1){
sum+=m1-m2;
if(sum>m) sum=m;
if(sum<0) sum=0;
}
if(p1==1 && p2==0)
{
sum+=m1;
if(sum>m) sum=m;
}
if(p1==0 && p2==1)
{
sum-=m2;
if(sum<0) sum=0;
}
//cout<<i<<" "<<p1<<" "<<p2<<" "<<sum<<endl;
}
cout<<sum<<endl;
}
return 0;
}
第三题:滑动窗口,双指针,维持窗口内只有两个非N字符即可(贪心:能换一个N肯定会换,所以肯定是两次,不会是1次或0次),每次窗口最大时即为一个可能的解,维护ans即可 #include<iostream>
#include<cstring>
using namespace std;
int main(){
int T;
cin>>T;
string s;
while(T--)
{
cin>>s;
int len=s.size();
int flag=2,i=0,j=0,ans=0;
while(j<len){
if(s[j]=='N') j++;
else{
if(flag>0) {flag--;j++;}
else
{
ans = max(ans,j-i);
while(flag==0)
{
if(s[i]=='N') i++;
else {i++;flag++;break;}
}
}
}
}
ans=max(ans,j-i);
cout<<ans<<endl;
}
return 0;
}
第四题: 只做了40%,感觉要维护一个数组,将O(n*q)变成O(n+q),稍后看完大佬的再补充,吃饭去了 #include<iostream>
#include<cstring>
using namespace std;
int main(){
int n;
cin>>n;
int a[n];
int mina=1<<30,maxa=-1;
for(int i=0;i<n;i++)
{
cin>>a[i];
mina=min(mina,a[i]);
maxa=max(maxa,a[i]);
}
int q,h;
cin>>q;
while(q--){
cin>>h;
if(h>=maxa) cout<<0<<endl;
else if(h<mina) cout<<1<<endl;
else
{
int cnt=0;
for(int i=0;i<n;i++)
{
if(a[i]>h){
if(i==0 || i>0&&a[i-1]<=h) cnt++;
}
}
cout<<cnt<<endl;
}
}
return 0;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 春招什么时候投? #
10556次浏览 178人参与
# 牛友的春节生活 #
7705次浏览 162人参与
# 春节前,你还在投简历吗? #
14181次浏览 163人参与
# 从夯到拉,锐评职场mentor #
5096次浏览 79人参与
# 牛客AI体验站 #
14822次浏览 267人参与
# 春节提前走,你用什么理由请假? #
10394次浏览 245人参与
# 实习到现在,你最困惑的一个问题 #
4540次浏览 130人参与
# 备战春招/暑实,现在应该做什么? #
5045次浏览 155人参与
# 工作后,你落下了哪些病根 #
32365次浏览 277人参与
# 怎么给家人解释你的工作? #
51557次浏览 208人参与
# 没有家庭托举的我是怎么找工作的 #
35707次浏览 266人参与
# 机械制造秋招总结 #
103299次浏览 886人参与
# 距离春招还有一个月,你现在是什么开局? #
6969次浏览 114人参与
# 上班摸鱼,你都在干些什么? #
39138次浏览 246人参与
# 今年秋招你收到了多少封邮件? #
37568次浏览 278人参与
# 聊聊Agent开发 #
24939次浏览 597人参与
# 暑期实习什么时候投? #
7162次浏览 167人参与
# 什么是优秀的实习经历 #
35942次浏览 387人参与
# 面试经验谈 #
406405次浏览 7217人参与
# 推荐一个值得做的AI项目 #
6812次浏览 180人参与
