今天的题实在是太良心了,使我不自觉地打错文件名降低分数
T1 bread
找规律数学题,找到规律很容易AC
AC
#include
using namespace std;
int n,k;
int main() {
freopen("bread.in","r",stdin);
freopen("bread.out","w",stdout);
cin>>n>>k;
if(n<=k) cout<<2;
else cout<<ceil(n*2.0/k);
return 0;
}
T2 expand
可图论可暴力模拟(应该)
想法是先排好序然后依次遍历,但至今不对
T3 mountain
类最长不下降子序列,没想到这样考,高兴地打错文件名助助兴
AC
#include
using namespace std;
long int a[100001];
long int maxa=-1;
int n,i,s;
int main( ) {
freopen("mountain.in","r",stdin);
freopen("mountain.out","w",stdout);
cin>>n;
for(i=1;i>a[i];
}
for(i=1;imaxa)
{
s++;
maxa=a[i];
}
}
cout<<s;
return 0;
}
T4 prize
模拟即可,非常简单(
AC
#include
using namespace std;
char a,b,c,d,e,l,r;
string f,j,k,p,o;
int n,s1,s2,s3,ans,bns;
bool f3=false,f1=false,f2=false;
int main( ) {
freopen("prize.in","r",stdin);
freopen("prize.out","w",stdout);
cin>>a>>b>>c>>d>>e>>f>>j>>k>>p>>o>>l>>r;
if(a=='A') ans++;
else if(a=='B') bns++;
if(b=='A') ans++;
else if(b=='B') bns++;
if(c=='A') ans++;
else if(c=='B') bns++;
if(d=='A') ans++;
else if(d=='B') bns++;
if(e=='A') ans++;
else if(e=='B') bns++;
if(f[0]=='0' || j[0]=='0' || k[0]=='0' || p[0]=='0' || o[0]=='0') f3=true;
else if(f[0]=='1' || j[0]=='1' || k[0]=='1' || p[0]=='1' || o[0]=='1') f1=true;
if(f3==true || f1==true) f2=true;
if(ans+bns==5 && l=='Y' && f2==true) s1=3000;
if(f3==true) s2=2000;
if(ans==5 && l=='Y') s3=1000;
if(r=='Y') cout<<s1+s2+s3;
else cout<<max(max(s1,s2),s3);
return 0;
}
T5 gou
暴力模拟三循环爆TED,优化成双循环仍爆TED,经一位学长(xwc)指点,用毕达哥拉斯算法优化,成功AC
AC
#include
using namespace std;
int n,i,j,s;
int main( )
{
freopen("gou.in","r",stdin);
freopen("gou.out","w",stdout);
cin>>n;
for(i=1;i<=sqrt(n);i++)
{
for(j=i+1;j<=sqrt(n);j++)
{
if(__gcd(i,j)==1 && (i+j)%2==1)
{
s+=n/(i*i+j*j);
}
}
}
cout<<s;
}
题库复习,不讨论
已经最后一天了,希望明天考试正常发挥吧