目录
P5707 【深基2.例12】上学迟到
https://www.luogu.com.cn/problem/P5707
#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int a1=8*60;
int a2=24*60;
int main(void)
{
int s,v; cin>>s>>v;
int t;
if(s%v==0) t=s/v;//向上取整
else t=s/v+1;
int temp=a1-t-10;
if(temp>=0)//这一天不够
{
printf("%02d:%02d\n",temp/60,temp%60);
}
else//提前一天
{
temp=a2+temp;
printf("%02d:%02d\n",temp/60,temp%60);
}
return 0;
}
P1055 [NOIP2008 普及组] ISBN 号码
https://www.luogu.com.cn/problem/P1055
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
string a; cin>>a;
int sum=0;
int ans=1;
for(int i=0;i<a.size()-2;i++)
{
if(a[i]>='0'&&a[i]<='9')
{
sum+=ans*(a[i]-'0');
ans++;
}
}
if( (sum%11) ==10&&a[a.size()-1]=='X')
{
cout<<"Right"<<endl;
return 0;
}
if( (sum%11) == (a[a.size()-1]-'0'))
cout<<"Right"<<endl;
else
{
if(sum%11!=10)
a[a.size()-1]=sum%11+'0';
else a[a.size()-1]='X';
cout<<a<<endl;
}
return 0;
}
P5717 【深基3.习8】三角形分类
https://www.luogu.com.cn/problem/P5717
#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
bool F1(int a,int b,int c)//合法不合法
{
if( (a+b>c) && (a+c>b) && (c+b>a) ) return false;
return true;
}
int F2(int a,int b,int c)
{
int sum=pow(a,2)+pow(b,2)+pow(c,2);
int ans=0;
ans=max(ans,a),ans=max(ans,b),ans=max(ans,c);
sum=sum-pow(ans,2);
if(pow(ans,2)<sum) return -1;//锐角
if(pow(ans,2)==sum) return 0;//直角
if(pow(ans,2)>sum) return 1;//钝角
}
int main(void)
{
int a,b,c; cin>>a>>b>>c;
if(F1(a,b,c)) cout<<"Not triangle"<<endl;
int m=F2(a,b,c);
if(m==0&&!F1(a,b,c)) cout<<"Right triangle"<<endl;
if(m==-1&&!F1(a,b,c)) cout<<"Acute triangle"<<endl;
if(m==1&&!F1(a,b,c)) cout<<"Obtuse triangle"<<endl;
if(!F1(a,b,c)&&(a==b||a==c||b==c)) cout<<"Isosceles triangle"<<endl;
if(!F1(a,b,c)&&a==b&&b==c) cout<<"Equilateral triangle"<<endl;
return 0;
}
P1009 [NOIP1998 普及组] 阶乘之和
https://www.luogu.com.cn/problem/P1009
#include<cstdio>
#include<iostream>
#include<vector>
using namespace std;
vector<int>A,C;
vector<int> add(vector<int> &A,vector<int> &B)
{
vector<int> C; int t=0;
for(int i=0;i<A.size()||i<B.size();i++)
{
if(i<A.size()) t+=A[i];
if(i<B.size()) t+=B[i];
C.push_back(t%10);
t/=10;
}
if(t) C.push_back(1);
return C;
}
vector<int> mtl(vector<int> &A,int b)
{
vector<int> C; int t=0;
for(int i=0;i<A.size()||t;i++)
{
if(i<A.size()) t+=A[i]*b;
C.push_back(t%10);
t/=10;
}
while(C.size()>1&&C.back()==0) C.pop_back();
return C;
}
int main(void)
{
int n;cin>>n;
A.push_back(1);
for(int i=1;i<=n;i++)
{
A=mtl(A,i);
C=add(A,C);
}
for(int i=C.size()-1;i>=0;i--) cout<<C[i];
cout<<endl;
return 0;
}
P5723 【深基4.例13】质数口袋
https://www.luogu.com.cn/problem/P5723
#include<cstdio>
#include<iostream>
#include<vector>
using namespace std;
bool a[500005]={false};
vector<int> ve;
int main(void)
{
int n; cin>>n;
int sum=0;
bool flag=false;
for(int i=2;i<=500005;i++)
{
if(!a[i])
{
int j=2;
while(j*i<=500005) a[j*i]=true,j++;
if( (sum+i) <=n) sum+=i,ve.push_back(i);
else flag=true;
}
if(flag) break;
}
for(int i=0;i<ve.size();i++) cout<<ve[i]<<endl;
cout<<ve.size()<<endl;
return 0;
}
P5726 【深基4.习9】打分
https://www.luogu.com.cn/problem/P5726
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int sum,a,b,number;
int main(void)
{
int n; cin>>n;
a=9999,b=-9999;
for(int i=0;i<n;i++) cin>>number,sum+=number,a=min(a,number),b=max(b,number);
printf("%.2lf\n",(sum-a-b)*1.0/(n-2));
return 0;
}