XTU OJ 1040 ,1038
有一种工业零件,分成左右两半,它们的形状由’X’和空格表示的二维图形表示,比如:左半的零件形状如下:
每行输出一个测试用例的结果。 |
||
Sample Input |
||
2 4 XXXXX XXX XXXX XXX XXX XXXX XXXX XXXXX 2 XXXXX X XXXXX XXX |
||
Sample Output |
||
1 6 |
||
Source |
#include<stdio.h>
#include<string.h>
char a[30][100],b[30][100];
int len[100];
int main()
{
int k,n,i,length,j,num,maxnum;
int sum=0,maxlen;
scanf("%d",&k);
while(k--)
{
scanf("%d",&n);
num=0;
getchar();
for(i=0;i<n;i++)//分别求出两段字母的X的个数
{
gets(a[i]);
length=strlen(a[i]);
for(j=0;j<length;j++)
{
if(a[i][j]=='X')
sum++;
}
}
for(i=0;i<n;i++)
{
gets(b[i]);
length=strlen(b[i]);
for(j=0;j<length;j++)
{
if(b[i][j]=='X')
sum++;
}
for(j=0;j<length;j++)
{
if(b[i][j]==' ')
{
num++;
}
if(b[i][j]=='X')
break;
}
len[i]=length-num;
num=0;
}
maxlen=strlen(a[0])+len[i];
for(i=0;i<n;i++)//求出拼凑出来的最长的一行的值
if((strlen(a[i])+len[i])>=maxlen)
maxlen=strlen(a[i])+len[i];//求出最大的一行
sum=n*maxlen-sum;//求出空格的个数
printf("%d\n",sum);
sum=0;
}
return 0;
}
// getchar();
S = s1 s2...s2n 是一个符合格式的括号的字符串,S能按下面两种方式编码:
请写一个程序将P序列转换成W序列。
第一行是一个整数K,表示有多少个测试用例,以后每两行一个测试用例。每个测试用例第一行为一个整数n(1 <= n <= 20),表示P序列长度,每个测试用例第二行n个非负整数,每个整数之间有一个空格分隔。
每行输出一个测试用例的结果。每行包括n个整数,每个整数之间用一个空格分隔。 |
|||||||||||||||||||||||||||||||||||||||||
Sample Input |
|||||||||||||||||||||||||||||||||||||||||
2 6 4 5 6 6 6 6 9 4 6 6 6 6 8 9 9 9 |
|||||||||||||||||||||||||||||||||||||||||
Sample Output |
|||||||||||||||||||||||||||||||||||||||||
1 1 1 4 5 6 1 1 2 4 5 1 1 3 9 |
|||||||||||||||||||||||||||||||||||||||||
#include <stdio.h>
#include <string.h>
int main()
{
int n,i,j,l,k,flag,length,figure,T;
int str[1111];
char num[11111];
scanf("%d",&n);
while(n--)
{
k=0;
int kyx [11111]={0};
figure=0;
memset(num,'\0',sizeof(num));
scanf("%d",&l);
for(i=0;i<l;i++)
{
scanf("%d",&str[i]);
}
for(i=0;i<l;i++)
{
if(i==0)
{
for(j=0;j<str[i];j++)
{
num[k]='(';
k++;
}
num[k]=')';
}
else
{
for(j=0;j<(str[i]-str[i-1]);j++)//4.5.6.6.6.6
{
k++;
num[k]='(';
}
k++;
num[k]=')';
}
}
length=strlen(num);
//puts(num);
for(i=0;i<length;i++)
{
if(num[i]=='(')
{
kyx[i]=1;
}
}
for(i=0;i<length;i++)
{
if(num[i]==')')
{
for(j=i;j>=0;j--)
{
if(num[j]==')')
{
figure++;
}
else if((num[j]=='(')&&kyx[j]!=0)
{
if(i!=length-1)
{
kyx[j]=0;
printf("%d ",figure);
figure=0;
break;
}
if(i |