蓝桥杯14小白月赛题解

直接输出

pi/ti,for遍历

#include <iostream>
using namespace std;
#define int long long 
int a,b,c ;
double t=1.00;
signed main()
{
  cin>>a;
  int an=0;
  for(int i=1;i<=a;i++)
  {
  		cin>>b>>c;
  		if(t>c*1.00/b)
	  	{
	  		t=c*1.00/b;
	  		an=i;
  		}	
  }
  cout<<an<<endl;
  return 0;
}

用前缀和求重新启动的次数,特盘端点。

#include <iostream>
using namespace std;
#define int long long 
const int n=1e6+11;
int a,b,c,l,r,d[n];
signed main()
{
	ios::sync_with_stdio(false);
	  cin.tie(0),cout.tie(0);
	cin>>a;
	string t;
	cin>>t>>b;
	t=" "+t;
	for(int i=1;i<=a-1;i++)
	{
		d[i]=d[i-1];
		if(t[i]=='1'&&t[i+1]=='0')
		{
			d[i]++;
		}
	}
	d[a]=d[a-1];
  d[a+1]=d[a];
	while(b--)
	{
		cin>>l>>r;
		int v=d[r]-d[l-1];
    if(r==a+1)
    {
      cout<<v<<endl;
      continue;
    }
    if(r<=a-1&&t[r]=='1'&&t[r+1]=='0')
		{
			v--;
		}
		cout<<v<<endl;
	}
}

背包

#include <bits/stdc++.h>
using namespace std;
#define int long long 
const int n=3e3+11;
int a,b[n],c[n],l,r,d[n],f[n];
signed main()
{
	ios::sync_with_stdio(false);
	  cin.tie(0),cout.tie(0);
	cin>>a;
	for(int i=1;i<=a;i++)
	{
		cin>>b[i];
	}
	for(int i=1;i<=a;i++)
	{
		cin>>c[i];
	}
	for(int i=1;i<=a;i++)
	{
		cin>>d[i];
	}
	for(int i=0;i<=3000;i++)
	{
		f[i]=1e18;
	}
	f[b[1]]=0;
	int v=b[1];
	for(int i=1;i<=a;i++)
	{
    for(int j=b[i]-1;j>=0;j--)
		{
			f[j]=1e18;
		}
		for(int j=3000;j>=b[i]&&j>=d[i];j--)
		{
			f[j]=min(f[j-d[i]]+c[i],f[j]);
		}
	}
	int p=1e18;
	for(int i=b[a];i<=3000;i++)
	{
		p=min(p,f[i]);
	}
	if(p>=1e18)
	{
		cout<<"-1"<<endl;
	}
	else
	{
		cout<<p<<endl;
	}
}

分别考虑每一位,组合数。

#include <bits/stdc++.h>
using namespace std;
#define int long long 
const int mod=998244353;
const int n=1e6+11;
int a,b[n],c[n],l,r,d[n],f[n];
int ss(int x,int y)
{
    int p=1;
    while(y)
    {
        if(y%2==1)
        {
            p=p*x%mod;
        }
        x=x*x%mod;
        y/=2;
    }
    return p;
}
signed main()
{
    ios::sync_with_stdio(false);
      cin.tie(0),cout.tie(0);
    a=9;
    int s=1;
    f[1]=1;
    for(int i=2;i<=100000;i++)
    {
        s=s*10%mod;
        f[i]=(f[i-1]+s)%mod;
    }
    
    s=0;
  int ff=0;
    for(int i=1;i<=a;i++)
    {
        cin>>b[i];
    if(b[i]!=0)
    {
      ff++;
    }
        s+=b[i];
    }
  if(ff==1)
  {
    cout<<f[s]%mod<<endl;
    return 0;
  }
    //cout<<"dfd"<<endl;
    d[s]=1;
    for(int i=s-1;i>=1;i--)
    {
        d[i]=d[i+1]*i%mod;
    }
    c[0]=1;
    for(int i=1;i<=s-1;i++)
    {
        c[i]=c[i-1]*i%mod;
    }
    //cout<<"ff"<<endl;
    int an=0;
    for(int i=1;i<=a;i++)
    {
        if(b[i]==0)
          continue;
        if(b[i]==1)
        {
            an=(an+(f[s]*i%mod))%mod;
        }
        else
        an=(an+(((d[s-1-(b[i]-1)+1]*ss(c[b[i]-1],mod-2)%mod)*f[s])%mod*i)%mod)%mod;
        //cout<<an<<" "<<f[s]<<" "<<d[s-1-(b[i]-1)+1]<<endl;
    }
    cout<<an<<endl;
}
// 2 3 1 0 0 0 0 0 0
相关推荐
sszmvb12343 分钟前
测试开发 | 电商业务性能测试: Jmeter 参数化功能实现注册登录的数据驱动
jmeter·面试·职场和发展
测试杂货铺9 分钟前
外包干了2年,快要废了。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
测试界萧萧1 小时前
外包干了4年,技术退步太明显了。。。。。
自动化测试·软件测试·功能测试·程序人生·面试·职场和发展
小码哥说测试2 小时前
接口测试用例设计的关键步骤与技巧解析!
自动化测试·测试工具·jmeter·职场和发展·测试用例·接口测试·postman
linsa_pursuer2 小时前
快乐数算法
算法·leetcode·职场和发展
xinghuitunan8 小时前
蓝桥杯顺子日期(填空题)
c语言·蓝桥杯
阑梦清川9 小时前
在鱼皮的模拟面试里面学习有感
学习·面试·职场和发展
劲夫学编程10 小时前
leetcode:杨辉三角
算法·leetcode·职场和发展
钱钱钱端20 小时前
【压力测试】如何确定系统最大并发用户数?
自动化测试·软件测试·python·职场和发展·压力测试·postman
测试199821 小时前
外包干了2年,快要废了。。。
自动化测试·软件测试·python·面试·职场和发展·单元测试·压力测试