zoukankan      html  css  js  c++  java
  • 2020牛客多校第三场 A题Clam and Fish(贪心)

    2020牛客多校第三场 A题Clam and Fish(贪心)

    Clam and Fish

    题意:4种状态;

    0:无鱼无饵

    1:无鱼有饵

    2:有鱼无饵

    3:有鱼有饵

    有鱼可以拿鱼,有饵可以拿饵,无鱼可以用一个饵拿鱼,或什么都不做,4种操作只能选一个,求最多的鱼。

    题解:直接放弃dp考虑贪心,dp复杂度要n方。对于3,4肯定直接拿鱼是最赚的,0有饵用饵,1有抉择要用饵还是拿饵,稍微考虑一下怎么拿最赚,如果之后有0,那把饵留个之后的0最好,所以不难想出,我记录一下0的数量,尽量保留那个数量的饵留个之后的0,多出来的就去换鱼。

    #include<iostream>
    using namespace std;
    
    int t,n,s,slin;
    char a[2000007];
    int main(){
    	scanf("%d",&t);
    	while(t--){
    		scanf("%d",&n);
    		scanf("%s",a);
    		s=0;
    		slin=0;
    		for(int i=0;i<n;i++){
    			if(a[i]=='0')s++;
    		}
    		int ans1=0,ans2=0;
    		for(int i=0;i<n;i++){
    			if(a[i]=='0'){
    				slin++;
    				if(ans2>0){
    					ans2--;
    					ans1++;
    				}
    			}
    			else if(a[i]=='1'){
    				if((slin+ans2)<=s){
    					ans2++;
    				}
    				else{
    					if(ans2>0){
    						ans2--;
    						ans1++;
    					}
    					else{
    						ans2++;
    					}
    				}
    			}
    			else if(a[i]=='2'){
    				ans1++;
    			}
    			else{
    				ans1++;
    			}
    		}
    		printf("%d
    ",ans1);
    	}
    }
    
    
  • 相关阅读:
    Avira 去广告
    git 初步使用
    C语言中的取模符号讨论
    查看指定端口的进程
    fuck~disabled form
    编译器相关资源
    scheme 相关资源
    Binary search tree
    各种屏幕(包括手机)尺寸测试工具
    实现一个完整c++11编译器的认证
  • 原文地址:https://www.cnblogs.com/whitelily/p/13337759.html
Copyright © 2011-2022 走看看