蓝桥杯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
相关推荐
.NET修仙日记7 小时前
2026 .NET 面试八股文:高频题 + 答案 + 原理(高级核心篇)
面试·职场和发展·c#·.net·.net core·.net 8
浅念-7 小时前
LeetCode最短路必看:BFS算法原理+经典题解
数据结构·c++·算法·leetcode·职场和发展·bfs·宽度优先
Fuly10247 小时前
技术经理面试相关--管理和沟通篇
面试·职场和发展
WL_Aurora8 小时前
备战蓝桥杯国赛【Day 4】
python·蓝桥杯
UnicornDev8 小时前
从零开始学iOS开发(第四十一篇):StoreKit 2 与应用内购买 —— 让应用实现商业价值
职场和发展·蓝桥杯
流年如夢8 小时前
顺序表(LeetCode)
c语言·数据结构·leetcode·职场和发展
浅念-21 小时前
刷穿LeetCode:BFS 解决 Flood Fill 算法
数据结构·c++·算法·leetcode·职场和发展·bfs·宽度优先
我命由我123451 天前
程序员的心理学学习笔记 - 空杯心态
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
Hesionberger1 天前
LeetCode 78:子集生成全攻略
java·开发语言·数据结构·python·算法·leetcode·职场和发展
天真小巫1 天前
如何找到喜欢做的事(实践版)
职场和发展