求NOIP2008普及组第四题C语言代码。
发布网友
发布时间:2022-07-24 09:31
我来回答
共2个回答
热心网友
时间:2023-10-09 01:00
VAR a:array[1..1000,1..1000]of char;
f:array[1..50,1..50]of integer;
m,n,maxx,maxy,i,j,k:integer;
procere draw(x,y:integer);
BEGIN
a[x,y]:='+';
a[x,y+1]:='-';
a[x,y+2]:='-';
a[x,y+3]:='-';
a[x,y+4]:='+';
a[x+1,y]:='|';
a[x+1,y+1]:=' ';
a[x+1,y+2]:=' ';
a[x+1,y+3]:=' ';
a[x+1,y+4]:='|';
a[x+1,y+5]:='/';
a[x+2,y]:='|';
a[x+2,y+1]:=' ';
a[x+2,y+2]:=' ';
a[x+2,y+3]:=' ';
a[x+2,y+4]:='|';
a[x+2,y+5]:=' ';
a[x+2,y+6]:='+';
a[x+3,y]:='+';
a[x+3,y+1]:='-';
a[x+3,y+2]:='-';
a[x+3,y+3]:='-';
a[x+3,y+5]:=' ';
a[x+3,y+4]:='+';
a[x+3,y+6]:='|';
a[x+4,y+1]:='/';
a[x+4,y+2]:=' ';
a[x+4,y+3]:=' ';
a[x+4,y+4]:=' ';
a[x+4,y+5]:='/';
a[x+4,y+6]:='|';
a[x+5,y+2]:='+';
a[x+5,y+3]:='-';
a[x+5,y+4]:='-';
a[x+5,y+5]:='-';
a[x+5,y+6]:='+';
end;
BEGIN
readln(m,n);
maxy:=4*n+2*m+1; //横向范围
maxx:=0;
for i:=1 to m do
for j:=1 to n do
begin
read(f[m-i+1,j]);
if (f[m-i+1,j]+1)*3+2*(m-i)>maxx then maxx:=(f[m-i+1,j]+1)*3+2*(m-i);
end;
fillchar(a,sizeof(a),'.');
for i:=m downto 1 do
for j:=1 to n do
for k:=1 to f[i,j] do
draw(2*i+3*k-4,2*i+4*(j-1)-1);
for i:=1 to maxx do
begin
for j:=1 to maxy-1 do
write(a[maxx-i+1,j]);
writeln(a[maxx-i+1,maxy])
end;
END.
C 语言真的很难找 但是这个P语言还是可以看看的
热心网友
时间:2023-10-09 01:00
#include<stdio.h>
#include<stdlib.h>
#include<mem.h>
char pic[3003][3003];
long map[53][53],max;
int paint(long o,long p)
{ long i,j,k,m,n;
//+---+
pic[o][p]=pic[o][p+4]='+';
for (n=p+1;n<p+4;n++)
pic[o][n]='-';
//| |/
o++;
pic[o][p]=pic[o][p+4]='|';
for (n=p+1;n<p+4;n++)
pic[o][n]=' ';
pic[o][p+5]='/';
//| | +
o++;
pic[o][p]=pic[o][p+4]='|';
for (n=p+1;n<p+4;n++)
pic[o][n]=' ';
pic[o][n+1]=' ';
pic[o][n+2]='+';
//+---+ |
o++;
pic[o][p]=pic[o][p+4]='+';
for (n=p+1;n<p+4;n++)
pic[o][n]='-';
pic[o][n+1]=' ';
pic[o][n+2]='|';
// / /|
o++;
p++;
pic[o][p]=pic[o][p+4]='/';
for (n=p+1;n<p+4;n++)
pic[o][n]=' ';
pic[o][p+5]='|';
// +---+
o++;
p++;
pic[o][p]=pic[o][p+4]='+';
for (n=p+1;n<p+4;n++)
pic[o][n]='-';
if (o>max) max=o;
return 0;
}
int main()
{ long i,j,k,m,n,o,p,q;
scanf("%ld%ld",&n,&m);
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
scanf("%ld",&map[i][j]);
memset(pic,'.',sizeof(pic));
for (i=1;i<=n;i++)
{ o=1+(n-i)*2;
for (p=o,j=1;j<=m;j++,p+=4)
for (q=o,k=1;k<=map[i][j];k++,q+=3)
paint(q,p);
}
k=1+4*m+2*n;
for (i=max;i>=1;i--,printf("\n"))
for (j=1;j<=k;j++)
putchar(pic[i][j]);
return 0;
}
noip2008复赛ISBN号码 C语言
len,temp,sum; fin>>yuan; sum=0; temp=1; len=yuan.size(); for(i=0;i<len-2;i++) if(yuan[i]>='0'&&yuan[i]<='9') {sum+=(yuan[i]-'0')*temp; temp
noip2008普及组初赛c语言答案
11. ABD 12. AC 13. BC 14. B 15. ABC 16. ABD 17. BCD 18. ABC 19. ACD 20. ABCD 三、问题求解:(共2题,每题5分,共计10分)1.7 2.3060 四、阅读程序写结果(共4题,每题8分,共计32分)1 23 (信心题)2 1,3,2 (简单递归)3 132/213/231/312/321/ (全排列)...
求noip2008普及组复赛试题!急急急急急!
aK,表示第a1行和a1+1行之间、第a2行和第a2+1行之间、…、第aK行和第aK+1行之间要开辟通道,其中ai< ai+1,每两个整数之间用空格隔开(行尾没有空格)。第二行包含L个整数,b1b2……bk,表示第b1列和b1+1列之间、第b2列和第b2+1列之间、…、第bL列和第bL+1列之间要开辟通道,其中bi< bi+1,每两个整...
2008noip排座位C语言
思路:预处理出两个数组,h[]和s[].分别表示在第i列划分通道将隔开多少位学生,对他们两个数组分别进行排序.然后按可以隔开人数从大到小的顺序划分通道 源码:include <stdio.h> include <math.h> include <string.h> include <stdlib.h> int n,m,k,l,d,h[1001],s[1001];void solve(int le...
noip2008pscal语言普及组初赛答案
NOIP2008年普及组(Pascal语言)参考答案与评分标准 一、单项选择题:(每题1.5分)1. A 2. B 3. C 4. C 5. B 6. D 7. C 8. D 9. A 10. B 11. D 12. A 13. B 14. B 15. B 16. A 17. B 18. A 19. B 20. D...
noip2008江苏普及组答案 pascal语言
noip2008江苏普及组答案 pascal语言 20 我来答 分享 微信扫一扫 网络繁忙请稍后重试 新浪微博 QQ空间 举报 浏览1054 次 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 pascal noip2008 江苏 语言 搜索资料 本地图片 图片链接 代码 提交回答 匿名 回答自动保存中...
...第十四届信息学奥林匹克竞赛阜阳赛区的C语言试题的答案?
只有P语言的第十四届全国青少年信息学奥林匹克联赛初赛试题( 提高组 Pascal语言 二小时完成 )●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●一、单项选择题(共10题,每题1.5分,共计15分。每题有且仅有一个正确答案)。1.在以下各项中,( )不是操作系统软件。A.Solaris B.Linux C.Sybase D...
NOIP2008初赛应知道什么知识
中国计算机学会对各省获NOIP二等奖和三等奖的分数线或比例提出指导性意见,各省可按照成绩确定获奖名单。 四、试题形式 每次联赛的试题分四组:普及组初赛题A1、普级组复赛题A2、提高组初赛题B1和提高组复赛题B2。其中,A1和B1类型相同,A2和B2类型相同,但题目不完全相同,提高组难度高于普及组。 ● 初赛:初赛全部为...
急求NOIP2008(提高组)复赛测试数据
全国信息学奥林匹克联赛(NOIP2008)复赛 提高组 一、题目概览 中文题目名称 笨小猴 火柴棒等式 传纸条 双栈排序 英文题目名称 word matches message twostack 可执行文件名 word matches message twostack 输入文件名 word,in matches.in message.in twostack.in 输出文件名 word.out matches.out ...
C语言NOIP2008复赛普及组第二题最后一个数据就是过不去 程序如下_百度...
这道题数据量很少,穷举为O(2)算法,所以穷举就可以了,核心部分:(先在图上标明有交头接耳人的序号坐标)for(i=1;i<=n;i++)for(j=1;j<=n;j++)if(a[i][j]!=0){ 就找右边或后边;划出一行,} 这样穷举,看哪个方案最好。你的方法可能到最后超时 ...