蓝桥31天|今天3道题Day25|C++

蓝桥31天|今天3道题Day25|C++,第1张

1.成绩统计

#include 
using namespace std;
int sum;
int lv1,lv2;
int main()
{
  int n;
  scanf("%d",&n);
  for(int i=0;i<n;i++){
    int num;
    scanf("%d",&num);
    sum++;
    if(num>=60)lv1++;
    if(num>=85)lv2++;
  }
  printf("%.0lf%\n",(100.0*lv1)/(1.0*sum));
  printf("%.0lf%\n",(100.0*lv2)/(1.0*sum));
  return 0;
}

2.既约分数

#include 
using namespace std;
int gcd(int a,int b){
  return b?gcd(b,a%b):a;
}
int main()
{
  long long ans=0;
  for(int i=1;i<=2020;i++){
    for(int j=1;j<=2020;j++){
      if(gcd(i,j)==1)ans++;
    }
  }
  printf("%lld",ans);
  return 0;
}
3.最优包含


编辑距离变形

#include 
#include 
using namespace std;
const int N=1010;
int dp[N][N];//s 1-i t 1-j  s包含t的最小修改次数
char s[N],t[N];
int main()
{
  cin>>s+1;
  cin>>t+1;

  int lens=strlen(s+1);
  int lent=strlen(t+1);
  memset(dp,0x3f,sizeof dp);

  for(int i=0;i<lens;i++)dp[i][0]=0;
  

  for(int i=1;i<=lens;i++){
    for(int j=1;j<=lent;j++){
       //对i修改,或等于i前面的数
      dp[i][j]=min(dp[i-1][j-1]+1,dp[i-1][j]);
      //要么s[i]==t[j],要么s[1-i]包含t[j]
      if(s[i]==t[j])dp[i][j]=min(dp[i-1][j-1],dp[i-1][j]);
      
    }
  }
  printf("%d",dp[lens][lent]);
  return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/562632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存