小乐乐改数字(简单)(模拟)
小乐乐改数字_牛客题霸_牛客网 (nowcoder.com)
#include <iostream>
#include<string>
using namespace std;
int main() {
string str;
cin>>str;
string ret;
for(int i=0;i<str.size();i++)
{
int a=str[i]-'0';
if(a%2==0)
{
if(ret.size()>0)ret+='0';
}
else ret+='1';
}
if(ret.size()==0) cout<<0;
cout<<ret<<endl;
}
// 64 位输出请用 printf("%lld")
十字爆破(简单)(前缀和)
I-十字爆破_牛客小白月赛25 (nowcoder.com)
#include <iostream>
#include<vector>
using namespace std;
vector<vector<long long>> arr(1000010);
long long row_[1000010];
long long col_[1000010];
int main() {
long long n,m;
scanf("%lld %lld",&n,&m);
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
long long t;
scanf("%lld",&t);
arr[i].push_back(t);
row_[i]+=arr[i][j];
col_[j]+=arr[i][j];
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<row_[i]-arr[i][j]+col_[j]<<' ';
}
cout<<endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")
比那名居的桃子
#include <cstdio>
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
long long arr1[100010];
long long arr2[100010];
long long sum1[100010];
long long sum2[100010];
struct tpnam{
long long i,a,b;
};
vector<tpnam> arr(100010);
int main() {
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>arr1[i];
}
for(int i=0;i<n;i++)
{
cin>>arr2[i];
}
int left=n-1;
int right=n-1;
while(left>=0)
{
if(left+1<n)
{
sum1[left]=sum1[left+1]+arr1[left];
}
else
{
sum1[left]=arr1[left];
}
if(right-left+1>k)
{
sum1[left]-=arr1[right--];
}
left--;
}
left=n-1;
right=n-1;
while(left>=0)
{
if(left+1<n)
sum2[left]=sum2[left+1]+arr2[left];
else sum2[left]=arr2[left];
if(right-left+1>k)
{
sum2[left]-=arr2[right--];
}
left--;
}
for(int i=0;i<n;i++)
{
arr[i].i=i+1;
arr[i].a=sum1[i];
arr[i].b=sum2[i];
}
sort(arr.begin(),arr.end(),[&](tpnam x,tpnam y)
{
if(x.a>y.a) return true;
if(x.a==y.a&&x.b<y.b) return true;
if(x.a==y.a&&x.b==y.b&&x.i<y.i) return true;
return false;
});
cout<<arr[0].i;
}
// 64 位输出请用 printf("%lld")