3.4刷题
P2524 Uim的情人节礼物·其之弐 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int a[20];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
if(prev_permutation(a,a+n)){
for(int i=0;i<n;i++) cout<<a[i]<<" ";
}
else cout<<"ERROR";
return 0;
}
P2524 Uim的情人节礼物·其之弐 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int a[20];
char b[20];
bool bijiao(int *a,char *b,int n){
for(int i=0;i<n;i++){
if(a[i]!=(b[i]-'0')) return 0;
}
return 1;
}
int main(){
int n,flag=0,ans=1;
cin>>n;
for(int i=0;i<n;i++){
a[i]=i+1;
cin>>b[i];
}
if(bijiao(a,b,n)) cout<<ans;
while(next_permutation(a,a+n)){
ans++;
if(bijiao(a,b,n)) cout<<ans;
//else cout<<ans<<"a";
}
return 0;
}
P2525 Uim的情人节礼物·其之壱 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int a[20];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
if(prev_permutation(a,a+n)){
for(int i=0;i<n;i++) cout<<a[i]<<" ";
}
else cout<<"ERROR";
return 0;
}
P2550 [AHOI2001] 彩票摇奖 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int t[8],p[8],result[8],qi,liu,wu,si,san,er,yi;
int main(){
int n,tmp;
cin>>n;
for(int i=0;i<7;i++) cin>>t[i];
while(n){
tmp=0;
for(int i=0;i<7;i++){
cin>>p[i];
for(int j=0;j<7;j++){
if(p[i]==t[j]) tmp++;
}
}
result[tmp]++;
n--;
}
for(int i=7;i>0;i--) cout<<result[i]<<" ";
return 0;
}
P2637 第一次,第二次,成交! - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int a[1010];
int main(){
int n,m;
long long sum=-1,danjia=0,x;
cin>>n>>m;
for(int i=0;i<m;i++) cin>>a[i];
sort(a,a+m);
for(int i=0;i<m;i++){
x=a[i]*(m-i);
if(x>sum&&(m-i)<=n) sum=x,danjia=a[i];
}
cout<<danjia<<" "<<sum;
return 0;
}
P2669 [NOIP 2015 普及组] 金币 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){
int k,i=1;
long long sum=0;
cin>>k;
while((k-i)>=0){
sum+=i*i;
k-=i;
i++;
}
sum=sum+k*i;
cout<<sum;
return 0;
}
P2670 [NOIP 2015 普及组] 扫雷游戏 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
char cc[110][110];
int main(){
int n,m,ans=0,a,b,c,d;
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++) cin>>cc[i][j];
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(cc[i][j]=='?'){
ans=0;
a=max(i-1,0),b=max(j-1,0);
c=min(i+1,n-1),d=min(j+1,m-1);
for(int k=a;k<=c;k++){
for(int z=b;z<=d;z++){
if(cc[k][z]=='*') ans++;
}
}cout<<ans;
}else cout<<cc[i][j];
}
cout<<endl;
}
return 0;
}
B2131 甲流病人初筛 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,ke,ans=0;
string name;
float t;
cin>>n;
for(int i=0;i<n;i++){
cin>>name>>t>>ke;
if(t>=37.5&&ke) ans++,cout<<name<<endl;
}
cout<<ans;
return 0;
}
B2132 素数对 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
bool isprime(int n){
for(int i=2;i*i<=n;i++){
if(n%i==0) return 0;
}
return 1;
}
int main(){
int n,flag=0;
cin>>n;
for(int i=2;i<=n;i++){
if(isprime(i)&&i+2<=n&&isprime(i+2)) flag=1,cout<<i<<" "<<i+2<<endl;
}
if(!flag) cout<<"empty";
return 0;
}
B2133 我家的门牌号 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,i,s;
cin>>n;
for(i=1;;i++){
for(int j=1;j<=i;j++){
if((i*(i+1)/2-j*3)==n){
cout<<j<<" "<<i;
return 0;
}
}
}
}
B2134 质数的和与积 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
bool isprime(int n){
for(int i=2;i*i<=n;i++){
if(n%i==0) return 0;
}
return 1;
}
int main(){
int s;
long long max_s=-1;
cin>>s;
for(int i=2;i*2<=s;i++){
if(isprime(i)&&isprime(s-i)&&(i*(s-i)>max_s)) max_s=i*(s-i);
}
cout<<max_s;
return 0;
}
B2135 单词替换 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){
string s,a,b,n;
getline(cin,s);
cin>>a>>b;
while(s.find(a)!=s.npos){
s.replace(s.find(a),a.size(),b);
}
cout<<s;
return 0;
}
B2136 素数回文数的个数 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
bool isprime(int n){
for(int i=2;i*i<=n;i++){
if(n%i==0) return 0;
}
return 1;
}
bool huiwen(int n){
int i=0,x=0;
int a[15],b[15];
while(n){
a[i]=n%10;
n/=10;
i++;
}
for(int j=i-1;j>=0;j--) b[x++]=a[j];
for(int k=0;k<i;k++){
if(a[k]!=b[k]) return 0;
}
return 1;
}
int main(){
int n,ans=0;
cin>>n;
for(int i=11;i<=n;i++){
if(isprime(i)&&huiwen(i)) ans++;
}
cout<<ans;
return 0;
}
错题总结
P1697 [USACO18JAN] Lifeguards B - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int b[110],e[110],f[1010];
int main(){
int n,max_s=-1,ans;
cin>>n;
for(int i=0;i<n;i++) cin>>b[i]>>e[i];
for(int i=0;i<n;i++){
for(int z=0;z<1001;z++) f[z]=0;
ans=0;
for(int j=0;j<n;j++){
if(i!=j){
for(int k=b[j];k<e[j];k++){
if(!f[k]) f[k]=1,ans++;
}
}
}
if(ans>max_s) max_s=ans;
}
cout<<max_s;
return 0;
}
P1739 表达式括号匹配 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
int zuo=0,flag=1;
cin>>s;
for(int i=0;i<s.size();i++){
if(s[i]=='(') zuo++;
if(s[i]==')') zuo--;
if(zuo<0){
flag=0;
break;
}
}
if(flag&&zuo==0) cout<<"YES";
else cout<<"NO";
return 0;
}
B2106 矩阵转置 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int a[110][110];
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cout<<a[j][i]<<" ";
}
cout<<endl;
}
return 0;
}
B2110 找第一个只出现一次的字符 - 洛谷
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int a[30];
int main(){
string s;
int flag=0;
cin>>s;
for(int i=0;i<s.size();i++){
a[int(s[i]-'a')]++;
}
for(int i=0;i<s.size();i++){
if(a[s[i]-'a']==1){
flag=1,cout<<s[i];
break;
}
}
if(!flag) cout<<"no";
return 0;
}