ccsu oj 1509 Build the given towers

2024-01-24 20:38
文章标签 build oj given towers 1509 ccsu

本文主要是介绍ccsu oj 1509 Build the given towers,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目大意:  
有三种正方形的1*1的方块,颜色分别为红黄蓝,用0,1,2表示,还有一种1*2的灰色方块(它只能竖着摆),用b表示,先给定一串字符串,和能摆放的宽度和每种方块的数量,判断能否合理的摆放这些方块,使得从左往右看能摆出字符串要求的形状。  
模拟题,从右往左摆,从上往下摆,遇到奇数个b就重新开辟一行,宽度随之增加。模拟摆方格的过程,并且判断方格的个数和摆放宽度是否满足要求。
Sample Input 
1 1 1
1
2
6
012
012bb
bb0
21bb
21b
1bb20
Sample Output 
valid
valid
valid
valid
valid
valid
#include<stdio.h>
#include<string.h>
int rest[100];
char str[50];
int cube[4];
int a,b,c,d,wide,w,n;
int main()
{
while(scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&wide,&n)!=EOF)
{
while(n--)
{
scanf("%s",str);
int w=1;
bool flag = true;
int len=strlen(str);
memset(rest,0,sizeof(rest));
cube[0]=a,cube[1]=b,cube[2]=c,cube[3]=d;
for(int i=len-1;i>=0;i--)
{
if(str[i]=='0'||str[i]=='1'||str[i]=='2')
{
cube[str[i]-'0']--;
if(cube[str[i]-'0']<0) {flag=false; break;}
} 
else if(str[i]=='b')
{
if(i==0)  {  flag=false;  break; }
int sum=0;
while(i>=0&&str[i]=='b') { sum++; i--;} 
i++;
cube[3]-=(sum+1)/2; 
if(sum%2)
{
if(i>0) rest[w]=(i-1);
else  rest[w]=1;
w++;
}
}  
}  
if(w>wide) flag=false;
int tot=0,ans=0;
for(int i=1;i<=w;i++) 
{
tot+=rest[i]/2;
ans+=rest[i]%2;
}
tot-=cube[3];  if(tot<0) tot=0;   
if(ans+tot*2>cube[0]+cube[1]+cube[2])  flag=false;
if(flag)  printf("valid\n");
else  printf("invalid\n");
}
}
return 0;
}

这篇关于ccsu oj 1509 Build the given towers的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/640928

相关文章

Maven pom.xml文件中build,plugin标签的使用小结

《Mavenpom.xml文件中build,plugin标签的使用小结》本文主要介绍了Mavenpom.xml文件中build,plugin标签的使用小结,文中通过示例代码介绍的非常详细,对大家的学... 目录<build> 标签Plugins插件<build> 标签<build> 标签是 pom.XML

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

flutter开发实战-flutter build web微信无法识别二维码及小程序码问题

flutter开发实战-flutter build web微信无法识别二维码及小程序码问题 GitHub Pages是一个直接从GitHub存储库托管的静态站点服务,‌它允许用户通过简单的配置,‌将个人的代码项目转化为一个可以在线访问的网站。‌这里使用flutter build web来构建web发布到GitHub Pages。 最近通过flutter build web,通过发布到GitHu

【UVA】10066-The Twin Towers(最长公共子串问题)

赤裸裸的最长公共子串问题,没什么好说的,注意的是,每组数据后面都有一个空行。 13996019 10066 The Twin Towers Accepted C++ 0.015 2014-08-06 00:34:53 #include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using

哈理工OJ 2179(深搜)

组合 Time Limit: 1000 MSMemory Limit: 32768 K Total Submit: 7(5 users)Total Accepted: 6(5 users)Rating: Special Judge: No Description 给出一个正整数N,从集合{1,2,3..N} 中找出所有大小为k的子集, 并按照字典序从小到大输出。 Input 第一行是一个整

每日OJ_牛客_求和(递归深搜)

目录 牛客_求和(递归深搜) 解析代码 牛客_求和(递归深搜) 求和_好未来笔试题_牛客网 解析代码         递归中每次累加一个新的数,如果累加和大于等于目标,结束递归。此时如果累加和正好等于目标,则打印组合。向上回退搜索其它组合。此题本身就是一个搜索的过程,找到所有的组合。 #include <iostream>#include <cmath>#in

兔子-build.gradle中代码的含义

//声明构建的项目类型,这里当然是android了apply plugin: 'com.android.application'//设置编译android项目的参数android {// SDK的版本号,也就是API Level,例如API-19、API-20、API-21等等。compileSdkVersion 23//构建工具的版本,其中包括了打包工具aapt、dx等等。// 这个工具的目

The `XXXUITests [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build......

出现的警告: [!] The `ColorInHeartUITests [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-ColorInHeart-ColorInHeartUITests/Po

OJ-0905

题目 示例1: 输入:10 10 56 34 99 1 87 8 99 3 255 6 99 5 255 4 99 7 255 2 99 9 255 213 4输出:99 示例2: 输入:10 10 255 34 0 1 255 8 0 3 255 6 0 5 255 4 0 7 255 2 0 9 255 213 5输出:255 import java.util.

6-通过Java代码build cube

转:http://www.cnblogs.com/hark0623/p/5580632.html 通常是用于增量 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3