首页 > 其他分享 >ZOJ4125 Sekiro

ZOJ4125 Sekiro

时间:2023-02-04 11:02:34浏览次数:64  
标签:ZOJ4125 Sekiro cout int long continue include lld


题目:​​点击这里​

题意:

求n对2取k次余数,如果n为奇数,n+1后再取余。

给的数据量很大,单纯遍历就会超时。

当n==0时直接输出0,需要特判。

有两种方法。当k>=32时,直接输出1.

在循环中,当n==1跳出循环输出1.

AC代码:

#include<iostream>
using namespace std;
int main(){
std::ios::sync_with_stdio(false);
int t;
cin>>t;
while(t--){
long long n,m;
cin>>n>>m;
if(n==0)
{
cout<<'0'<<endl;
continue;
}
if(m>=35){cout<<'1'<<endl;
continue; }
for(long long i=1;i<=m;i++){
n=n+1;
n/=2;
}
cout<<n<<endl;
}
}
#include<iostream>
#include<math.h>
#include<string.h>
#include<stdio.h>
#include<algorithm>
using namespace std;
typedef long long ll;
int main()
{
ll n,m,ans;
int i;
int t;
scanf("%d",&t);
while(t--)
{
scanf("%lld %lld",&n,&m);
if(n==0)
{
printf("0\n");
continue;
}
for(i=0;i<m;i++)
{
n+=1;
n/=2;
if(n==1)
break;
}
printf("%lld\n",n);
}


return 0;
}

 

 

标签:ZOJ4125,Sekiro,cout,int,long,continue,include,lld
From: https://blog.51cto.com/u_15952369/6036931

相关文章