思维题之T恤衫

这篇文章介绍了如何使用Java编程语言解决一个关于T恤洗涤的问题,涉及字符串处理和数组操作,主要展示了如何根据输入的1、2和0字符动态减少普通和特殊T恤的数量。
摘要由CSDN通过智能技术生成

[ABC332C] T-shirts - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

源于atcoder

由于字符串的长度为1000.不论怎样,顺序枚举即可。

import java.awt.FontFormatException;
import java.awt.geom.AffineTransform;
import java.awt.image.BandCombineOp;
import java.awt.image.DataBufferInt;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.security.PublicKey;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Scanner;

import javax.imageio.plugins.tiff.BaselineTIFFTagSet;
public class Main {
    public static void main(String[] args) throws IOException {
        Scanner sc=new Scanner(System.in);
     BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
     PrintWriter pw1=new PrintWriter(System.out);
String[] aStrings=br1.readLine().split(" ");
data=Integer.parseInt(aStrings[0]);
aa=Integer.parseInt(aStrings[1]);
String bString=br1.readLine();
int a=aa;
int a1=0;
int b;
int answer=0;
for(b=0;b<data;b++) {
	if(bString.charAt(b)=='1') {//遇到1普通T恤减一
		if(a!=0) {
		a--;
		}
		else {//一旦普通T恤不够用,将特殊T恤减一
			a1--;
		}
	}
	else if(bString.charAt(b)=='2') {
		a1--;//遇到2时直接特殊T恤减一
	}
	else {//遇到0时,开始洗T恤
		if(a1<0) {
			aa1=aa1-a1;//令最终的答案加上额外的特殊T恤
			
		}
		a1=aa1;//将特殊T恤和普通T恤的数量重置
		a=aa;
	}
}
if(a1<0) {//如果没有重洗这一步,我们额外判断一下
	aa1=aa1-a1;
}
System.out.println(aa1);
}
public static int aa=0;
public static int aa1=0;
public static int data;
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值