蓝桥杯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
相关推荐
测试秃头怪7 小时前
如何评估自动化测试脚本的编写时间和维护工作量?
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
tyqtyq2213 小时前
营养餐单规划:AI 科学饮食规划系统的鸿蒙实现
人工智能·学习·华为·职场和发展·生活·harmonyos
六点_dn14 小时前
我的面试复盘总结(南天信息)
面试·职场和发展
程序员杰哥17 小时前
接口测试知识总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
CoderYanger19 小时前
视频切割脚本(Python版)
linux·开发语言·windows·后端·python·程序人生·职场和发展
CoderYanger19 小时前
视频裁剪+缩放+自动添加水印脚本(Python版)
开发语言·后端·python·程序人生·职场和发展·音视频·学习方法
杨逢昌工厂6S管理2 天前
28- 杨逢昌:制造企业仓储6S反复混乱解决方案——四维定置标准化管控体系,让物料混放、通道堵塞等重复性乱象减少90%
大数据·经验分享·笔记·职场和发展·制造·学习方法
想吃火锅10052 天前
【leetcode】56.合并区间js
算法·leetcode·职场和发展
凌波粒2 天前
LeetCode--47.全排列 II(回溯算法)
算法·leetcode·职场和发展
天真小巫2 天前
2026.7.10总结
职场和发展