https://www.luogu.com.cn/training/105#problems
P5735 【深基7.例1】距离函数
#include<bits/stdc++.h>using namespace std;double x[15],y[15];double solve(double x,double y,double xx,double yy){ return sqrt((x-xx)*(x-xx)+(y-yy)*(y-yy));}int main(void){ for(int i=0;i<3;i++) cin>>x[i]>>y[i]; double sum=0; sum+=solve(x[0],y[0],x[1],y[1]); sum+=solve(x[0],y[0],x[2],y[2]); sum+=solve(x[1],y[1],x[2],y[2]); printf("%.2lf",sum); return 0;}
P5736 【深基7.例2】质数筛
#include<bits/stdc++.h>using namespace std;int a[105],n;int main(void){ cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; int flag=0; for(int j=2;j<=sqrt(a[i]);j++) if(a[i]%j==0) flag=1; if(!flag&&a[i]!=1) cout<<a[i]<<" "; } return 0;}
P5737 【深基7.例3】闰年展示
#include<bits/stdc++.h> using namespace std;int l,r;vector<int>ve; int check(int x) { if(x%400==0||(x%4==0&&x%100!=0)) return 1; return 0;}int main(void){ cin>>l>>r; for(int i=l;i<=r;i++) if(check(i)) ve.push_back(i); cout<<ve.size()<<endl; for(int i=0;i<ve.size();i++) cout<<ve[i]<<" "; return 0;}
P5738 【深基7.例4】歌唱比赛
#include<bits/stdc++.h>using namespace std;int n,m,a[105];double ans;int main(void){ cin>>n>>m; for(int i=1;i<=n;i++) { double sum=0; for(int j=0;j<m;j++) cin>>a[j],sum+=a[j]; sort(a,a+m); ans=max(ans,(sum-a[0]-a[m-1])/(m-2)); } printf("%.2lf",ans); return 0;}
P5739 【深基7.例7】计算阶乘
#include<bits/stdc++.h> using namespace std;int main(void){ long long int n; cin>>n; long long int sum=1; while(n) sum*=n,n--; cout<<sum; return 0;}
P5461 赦免战俘
#include<bits/stdc++.h> using namespace std;const int N=1050;int a[N][N],n;int main(void){ cin>>n; n=pow(2,n); a[1][n]=1; for(int i=2;i<=n;i++) { for(int j=1;j<=n;j++) a[i][j]=(a[i-1][j]+a[i-1][j+1])%2; } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) cout<<a[i][j]<<" "; cout<<endl; } return 0;}//0 1//1 1//0 0 0 1 //0 0 1 1//0 1 0 1//1 1 1 1//0 0 0 0 0 0 0 1//0 0 0 0 0 0 1 1//0 0 0 0 0 1 0 1//0 0 0 0 1 1 1 1//0 0 0 1 0 0 0 1//0 0 1 1 0 0 1 1//0 1 0 1 0 1 0 1//1 1 1 1 1 1 1 112345678910111213141516171819202122232425262728293031323334353637
#include<bits/stdc++.h> using namespace std;const int N=1050;int a[N][N],n;void dfs(int n,int x,int y){ if(n==1) return; for(int i=x;i<=x+n/2-1;i++) for(int j=y;j<=y+n/2-1;j++) a[i][j]=0; dfs(n/2,x,y+n/2); dfs(n/2,x+n/2,y); dfs(n/2,x+n/2,y+n/2);}int main(void){ cin>>n; n=pow(2,n); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) a[i][j]=1; dfs(n,1,1); for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cout<<a[i][j]<<" "; } puts(""); } return 0;}
P5740 【深基7.例9】最厉害的学生
#include<bits/stdc++.h>using namespace std;struct node{ string name; int a,b,c,id;}temp;int n;vector<node>ve;bool cmp(node a,node b){ if(a.a+a.b+a.c!=b.a+b.b+b.c) return a.a+a.b+a.c>b.a+b.b+b.c; return a.id<b.id;}int main(void){ cin>>n; for(int i=0;i<n;i++) { cin>>temp.name>>temp.a>>temp.b>>temp.c; temp.id=i; ve.push_back(temp); } sort(ve.begin(),ve.end(),cmp); cout<<ve[0].name<<" "<<ve[0].a<<" "<<ve[0].b<<" "<<ve[0].c; return 0;}
P5741 【深基7.例10】旗鼓相当的对手 - 加强版
#include<bits/stdc++.h>using namespace std;struct node{ string name; int a,b,c;}temp;vector<node>ve;vector< pair<string,string> >s;int n;int main(void){ cin>>n; for(int i=0;i<n;i++) { cin>>temp.name>>temp.a>>temp.b>>temp.c; ve.push_back(temp); } for(int i=0;i<n;i++) { for(int j=i+1;j<n;j++) { if(abs(ve[i].a-ve[j].a)>5) continue; if(abs(ve[i].b-ve[j].b)>5) continue; if(abs(ve[i].c-ve[j].c)>5) continue; if(abs(ve[i].a+ve[i].b+ve[i].c-ve[j].a-ve[j].b-ve[j].c)>10) continue; if(ve[i].name<=ve[j].name) s.push_back({ve[i].name,ve[j].name}); else s.push_back({ve[j].name,ve[i].name}); } } sort(s.begin(),s.end()); for(int i=0;i<s.size();i++) cout<<s[i].first<<" "<<s[i].second<<endl; return 0;}
P5742 【深基7.例11】评等级
#include<bits/stdc++.h>using namespace std;int main(void){ int n; cin>>n; while(n--) { int id,a,b; cin>>id>>a>>b; int sum=a+b; if(sum>140&&(a*7+b*3>=800)) cout<<"Excellent"<<endl; else cout<<"Not excellent"<<endl; } return 0;}
P1075 [NOIP2012 普及组] 质因数分解
#include<bits/stdc++.h>using namespace std;int check(int x){ for(int i=2;i<=x/i;i++) if(x%i==0) return 0; return 1;}int main(void){ int n; cin>>n; for(int i=2;i<=n/i;i++) { if(n%i==0) { if(check(i)&&check(n/i)) { cout<<n/i; return 0; } } } return 0;}
P1304 哥德巴赫猜想
#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int prime[N],st[N],cnt;void init(int n){ st[0]=1,st[1]=1; for(int i=2;i<=n;i++) { if(!st[i]) prime[cnt++]=i; for(int j=0;prime[j]<=n/i;j++) { st[i*prime[j]]=1; if(i%prime[j]==0) break; } }}int main(void){ init(1e5); int n; cin>>n; for(int i=2;i<=n;i+=2) { for(int j=0;j<cnt;j++) { if(prime[j]>i) break; if(!st[i-prime[j]]) { printf("%d=%d+%d\n",i,prime[j],i-prime[j]); break; } } }}
P1217 [USACO1.5]回文质数 Prime Palindromes
#include<bits/stdc++.h>using namespace std;const int N=1e7+10;int prime[N],st[N],cnt;int l,r;void init(int n){ for(int i=2;i<=n;i++) { if(!st[i]) prime[cnt++]=i; for(int j=0;prime[j]<=n/i;j++) { st[i*prime[j]]=1; if(i%prime[j]==0) break; } }}int check(int x){ string s=to_string(x); for(int i=0;i<s.size()/2;i++) { if(s[i]!=s[s.size()-1-i]) return 0; } return 1;}int main(void){ init(1e7); cin>>l>>r; for(int i=0;i<cnt;i++) { if(prime[i]>=l&&prime[i]<=r&&check(prime[i])) cout<<prime[i]<<endl; } return 0;}
P2415 集合求和
#include<bits/stdc++.h>using namespace std;vector<int>ve;long long int n,sum;int main(void){ while(cin>>n) ve.push_back(n); long long int cnt=pow(2,ve.size()-1); for(int i=0;i<ve.size();i++) sum+=cnt*ve[i]; cout<<sum; return 0;}
P5743 【深基7.习8】猴子吃桃
#include<bits/stdc++.h>using namespace std;int main(void){ int n; cin>>n; int sum=1; for(int i=n-1;i>=1;i--) sum+=1,sum*=2; cout<<sum; return 0;}
P5744 【深基7.习9】培训
#include<bits/stdc++.h>using namespace std;int main(void){ int n; cin>>n; while(n--) { string name; cin>>name; int age,score; cin>>age>>score; score=score*1.2; score=min(score,600); cout<<name<<" "<<age+1<<" "<<score<<endl; } return 0;}