当前位置: 首页 > article >正文

牛客周赛 Round 65

文章目录

      • 超市
        • 思路:
        • Solved:
      • 雨幕
        • 思路:
        • Solved:
      • 闺蜜
        • 思路:
        • Solved:
      • 医生
        • 思路:
        • Solved:
      • 降温(easy)
        • 思路:
          • Solved:
      • F-降温(hard)
        • 思路:
        • Solved:

超市

思路:

签到题,哪个便宜就买哪个

Solved:
void solve()
{
	int n,a,b;cin>>n>>a>>b;
	cout<<n/min(a,b);
}

雨幕

思路:

数据范围很小,直接暴力每个点并判断即可

Solved:
void solve()
{
	int n,m;cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	int ans=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(a[i][j]=='*'&&a[i-1][j]=='*'&&a[i][j-1]=='*'&&a[i-1][j-1]=='*'){
				ans++;
			}
		}
	}
	cout<<ans;
}

闺蜜

思路:

读题发现每次都会拿当前最大的那个数,没换之前每组小红拿的数均为大的,若将小紫最小的和小红最大的比较,那么每组小紫的数就均为最大的了,因此,除了该数组中元素均相同,其余均为小紫win

Solved:
void solve()
{
	int n;cin>>n;
	map<int,int> mp;
	for(int i=1;i<=n;i++){
		int x;cin>>x;
		mp[x]++;
	}
	for(auto &s:mp){
		if(s.se==n){
			cout<<"draw"<<endl;
			return ;
		}
	}
	cout<<"yukari"<<endl;
}

医生

思路:

通过数据可得知,可以对每个病人暴力枚举所有药物,选出最优

可以通过dfs 构造每种药物选与不选的情况

若不选,则递归下一种药物

若选,则先将病人情况用该种药物恢复,再递归到下一种药物

直至病人痊愈,取最小值

Solved:
void dfs(string s,int index,int t)
{
    bool flag=1;
    for(int i=0;i<m;i++){
        if(s[i]=='1'){
            flag=0;
        }
    }
    //直至病人痊愈,取最小值
    if(flag){
        minx=min(minx,t);
        return ;
    }
    if(index>=k) return ;
    //若不选,则递归下一种药物
    dfs(s,index+1,t);
    //若选,则先将病人情况用该种药物恢复,递归到下一种药物
    for(int i=0;i<m;i++){
        if(s[i]=='1'&&b[index][i]=='1'){
            s[i]='0';
        }
    }
    dfs(s,index+1,t+1);
}
 
void solve()
{
    cin>>n>>m;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    cin>>k;
    for(int i=0;i<k;i++){
        cin>>b[i];
    }
    for(int i=0;i<n;i++){
        minx=INT_MAX;
        dfs(a[i],0,0);
        if(minx==INT_MAX){
            cout<<"-1"<<endl;
        }else{
            cout<<minx<<endl;
        }
    }
}

降温(easy)

思路:

读题发现有天数气温未知,所以可通过构造未知气温达到最优的寒潮天数

顺序构造,可不考虑前面未知天数(因为前面未知天数会补上)

最大寒潮

顺序构造

  • 如果是第一天,那么直接无脑最高气温
  • 顺序遍历,肯定是优先比前一天降低x度
  • 如果降低x度达不成寒潮(低于最低温度),无脑最高气温

最小寒潮

逆序构造

  • 如果是最后一天,无脑最高温度,保证没有寒潮
  • 逆序遍历,肯定是优先比后一天升温x-1度,保证没有寒潮
  • 如果升高x-1度超过最高温度,设置为最高温度
Solved:
void solve()
{
    int n,x;cin>>n>>x;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        if(a[i]==-999){
            st[i]=1;
        }
    }
    //最多
    for(int i=1;i<=n;i++){
        if(st[i]==1&&i==1){
            a[i]=50;
        }
        else if(st[i]==1&&a[i-1]-x>=-50){
            a[i]=a[i-1]-x;
        }else if (st[i]==1){
            a[i]=50;
        }
    }
    int mx=0;
    for(int i=1;i<=n-1;i++){
        if(a[i]-a[i+1]>=x){
            mx++;
        }
    }
    //最少
    for(int i=n;i>=1;i--){
        if(st[i]==1&&i==n){
            a[i]=50;
        }
        else if(st[i]==1&&a[i+1]+x<=50){
            a[i]=a[i+1]+x-1;
        }else if (st[i]==1){
            a[i]=50;
        }
    }
    int mi=0;
    for(int i=1;i<=n-1;i++){
        if(a[i]-a[i+1]>=x){
            mi++;
        }
    }
    cout<<mx<<" "<<mi<<endl;
}

F-降温(hard)

思路:

hard版是气温最大值和最小值改变,未知天气气温值改变,其余思路同easy

Solved:
void solve()
{
	int n,x;cin>>n>>x;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		if(a[i]==-999999999){
			st[i]=1;
		}
	}
	//最多
	for(int i=1;i<=n;i++){
		if(st[i]==1&&i==1){
			a[i]=num1;
		}
		else if(st[i]==1&&a[i-1]-x>=num2){
			a[i]=a[i-1]-x;
		}else if (st[i]==1){
			a[i]=num1;
		}
	}
	int mx=0;
	for(int i=1;i<=n-1;i++){
		if(a[i]-a[i+1]>=x){
			mx++;
		}
	}
    //最少
	for(int i=n;i>=1;i--){
		if(st[i]==1&&i==n){
			a[i]=num1;
		}
		else if(st[i]==1&&a[i+1]+x<=num1){
			a[i]=a[i+1]+x-1;
		}else if (st[i]==1){
			a[i]=num1;
		}
	}
	int mi=0;
	for(int i=1;i<=n-1;i++){
		if(a[i]-a[i+1]>=x){
			mi++;
		}
	}
	cout<<mx<<" "<<mi<<endl;
}

http://www.kler.cn/a/369370.html

相关文章:

  • python编程-装饰器
  • CubeMX中的Debug作用
  • 电脑程序变化监控怎么设置?实时监控电脑程序变化的五大方法,手把手教会你!
  • 【STM32外设及其应用】
  • Android token JJWT
  • App测试环境部署
  • CasPL: Cascade Prompt Learning for Vision-Language Model Adaptation
  • 【时间之外】IT人求职和创业应知【18】
  • Linux 基础io_ELF_虚拟物理地址_动态库加载
  • Segugio:一款针对恶意软件的进程执行跟踪与安全分析工具
  • Python爬虫:揭开商品详情的神秘面纱
  • 美的471温湿精控智能养鲜冰箱:创新科技,引领未来家居生活
  • 基于Python大数据的招聘数据分析及大屏可视化系统
  • 3.1.3 看对于“肮脏”页面的处理
  • 介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。(AI)
  • Spring-Day3
  • Redis 哨兵 问题
  • 深入理解 SQL 中的 WITH AS 语法
  • Flutter TextField和Button组件开发登录页面案例
  • Spark入门到实践
  • Codeforces Round 981 (Div. 3) A-D
  • JDK的下载
  • [C++]——红黑树(附源码)
  • 基于人脸识别系统设计与仿真-基于matlab
  • qt QApplication详解
  • labelimg使用教程