s201861魔术卡片
#include<bits/stdc++.h>
using namespace std;
int a,b,x,y;
int main()
{
cin>>a>>b>>x>>y;
if((a>=x&&b>=y)||(a>=y&&b>=x)||(x>=a&&y>=b)||(x>=b&&y>=a))cout<<1;
else cout<<2;
return 0;
}
s201862均分计算
#include<bits/stdc++.h>
using namespace std;
int n,t[10009],s[10009],k;
float h;
int main()
{
cin>>n;
k=n;
for(int i=1;i<=n;i++)
{
cin>>t[i];
h=h+t[i];
}
sort(t+1,t+1+n);
h=h-t[1]-t[n];
k=k-2;
h=h/k;
printf("%.2lf\n",h);
return 0;
}
s201863出发能量
#include<bits/stdc++.h>
using namespace std;
int n,s,x,ans;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x;
s=s+x;
if(s<0)
{
ans=ans+(-1*s);
s=0;
}
}
cout<<ans;
return 0;
}
s201864衰减
#include<bits/stdc++.h>
using namespace std;
int n,m,s[10],t;
void sj(int v)
{
if(v==1)
{
t++;
cout<<n<<"-";
for(int i=1;i<m;i++)cout<<s[i]<<"-";
cout<<s[m]<<"\n";
return;
}
for(int i=1;i<=v>>1;i++)
{
m++;
s[m]=i;
sj(i);
m--;
}
}
int main()
{
cin>>n;
sj(n);
cout<<t;
return 0;
}
s201865拆除桥墩
#include<bits/stdc++.h>
using namespace std;
long long L,n,m,l,r,x,y,z,c,k,s[100009];
int main()
{
cin>>L>>n>>m;
for(int i=1;i<=n;i++)cin>>s[i];
s[n+1]=L;
l=0;
r=L+1;
for(;;)
{
k=(l+r)/2;
x=0;
z=0;
s[0]=0;
for(int i=1;i<=n+1;i++)
{
c=i;
y=s[c]-s[z];
if(y>=k)z=i;
else if(y<k)x++;
}
if(x>m)r=k;
else if(x<=m)l=k;
if(l+1==r)break;
}
cout<<l;
return 0;
}
s201866扑克游戏
#include<bits/stdc++.h>
using namespace std;
int f[3002],P[3002],S[3002],q[3002],n,x;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>P[i];
for(int i=1;i<=n;i++)cin>>S[i];
for(int i=1;i<=n;i++)q[i]=q[i-1]+S[i];
for(int i=1;i<=n;i++)
{
f[i]=f[i-1];
for(int j=1;j<i;j++)
{
if(P[i]==P[j])x=q[i]-q[j-1]+f[j-1];
if(x>=f[i])f[i]=x;
}
}
cout<<f[n];
return 0;
}