A:
代码:
#include<bits/stdc++.h>
#define ll long long
#define mod 1000000007
using namespace std;
ll a,b,k,kk;
int main()
{
int t,i,j;
scanf("%d",&t);
while(t--)
{
scanf("%lld%lld%lld",&a,&b,&k);
if(k%2)
{
kk=(a-b)*(k/2);
kk+=a;
}
else
{
kk=(a-b)*(k/2);
}
printf("%lld\n",kk);
}
}
B:
代码:
#include<bits/stdc++.h>
#define ll long long
#define mod 1000000007
using namespace std;
int a[1005];
int main()
{
int n,i,j;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
n--;
int num=0;
for(i=1;i<n;i++)
{
if(a[i]==0&&a[i-1]==1&&a[i+1]==1)
{
num++;
a[i+1]=0;
}
}
printf("%d\n",num);
}
C:
代码:
#include<bits/stdc++.h>
#define ll long long
#define mod 1000000007
using namespace std;
struct node
{
ll id,val,pre;
bool operator < (const node& aaa)const
{
return val<aaa.val;
}
}v[300005];
int main()
{
ll n,i,j,x,sum,num,aa,bb;
scanf("%lld",&n);
sum=0;
num=0;
int flag=0;
for(i=1;i<=n;i++)
{
scanf("%lld",&x);
sum+=x;
v[i].id=i;
v[i].val=x;
}
sort(v+1,v+1+n);
aa=0;
for(i=1;i<n;i++)
{
if(sum-v[i].val==v[n].val*2)
{
aa++;
}
}
if(v[n-1].val*2==sum-v[n].val)aa++;
printf("%lld\n",aa);
for(i=1;i<n;i++)
{
if(sum-v[i].val==v[n].val*2)
{
if(flag)
printf(" ");
printf("%lld",v[i].id);
flag=1;
}
// flag=1;
}
if(v[n-1].val*2==sum-v[n].val)
{
if(flag)
printf(" ");
printf("%lld",v[n].id);
}
printf("\n");
}
D:
代码:
#include<bits/stdc++.h>
#define ll long long
#define mod 1000000007
using namespace std;
int a[210005],k,n;
bool ok(int mid)
{
int i,j;
int num=0;
for(i=1;i<200005;i++)
{
num+=a[i]/mid;
}
return num>=k;
}
int main()
{
int i,j,l,r,mid,x,ans;
scanf("%d%d",&n,&k);
memset(a,0,sizeof(a));
for(i=1;i<=n;i++)
{
scanf("%d",&x);
a[x]++;
}
l=1;
r=n;
int flag=0;
while(l<=r)
{
mid=(l+r)>>1;
if(ok(mid))
{
ans=mid;
l=mid+1;
}
else
{
r=mid-1;
}
}
for(i=1;i<200005;i++)
{
int num;
num=a[i]/ans;
while(num--)
{
if(k==0)break;
if(flag)printf(" ");
printf("%d",i);
flag=1;
k--;
}
if(k==0)break;
}
printf("\n");
}
E:
F1:
F2:
本文精选了四个C++编程竞赛中的算法问题,包括数学运算、数组处理、数据结构和搜索算法,通过实际代码展示了如何解决这些复杂问题,为编程竞赛爱好者提供了宝贵的参考。
574

被折叠的 条评论
为什么被折叠?



