题解 P1319 【压缩技术】
这题是红题,我都觉得我的题解过不了
这道题输入不像别的题,给一个参数 n ,然后输入 n 的倍数个数据,它是给一个 n ,
再输入一堆数。看题目,n × n ? 是不是就说明了给出的数和一定,都是 n × n ?
显然是的。
这样就好办了:
#define maxn 40010
int n,a[maxn],f,i,j,s;
int read(){//快读
int r=0,f=1;//r置零,f为标记,正数与负数
char c=getchar();//字符c的读入
while((c<'0'||c>'9')&&c!='-')//读入其他字符
c=getchar();
if(c=='-')//若该数为负数
f=-1,c=getchar();
while(c<='9'&&c>='0')//读入数字
r=r*10+c-'0',c=getchar();
return r*f;//正还是负
}
n=read();
while(s<n*n)
a[++f]=read(),s+=a[f];
看上去很冗长,但知识点只有 #define、上面推出来的输入方式和快读。
快读?
大家肯定会疑惑:快读是什么?
快读,从字面上来理解就是快速读入。
快读的本质就是将读入一个整数转化为输入一个字符再减 ‘0’ 。
为什么呢?因为输入一个字符再减 ‘0’ 比读入一个整数快很多。
但这里数据不大,可用可不用
define 则是定义。如上 #define maxn 40010 则是定义 maxn 为 40010。
接下来往下走。
输出时,必须要记得换行,否则会错。
那么应该怎么实现呢?
s=0;//前面用过,置零
for(i=1;i<=f;i++){//i循环,导出数组
if(i%2)//i的奇偶性
for(j=1;j<=a[i];j++){//j循环,输出0
printf("0");
s++;//计数换行标志
if(s%n==0)
printf("\n");//特判换行
}
else//否则,因为i mod 2不是1就是0
for(j=1;j<=a[i];j++){//j循环,输出1
printf("1");
s++;//计数换行标志
if(s%n==0)
printf("\n");//特判换行
}
}
我觉得这道题也就这些知识点了 应该是我太弱才没有发现其他知识点
下面贴出完整代码:
#include<bits/stdc++.h>
#define maxn 40010
using namespace std;
int n,a[maxn],f,i,j,s;
int read(){
int r=0,f=1;
char c=getchar();
while((c<'0'||c>'9')&&c!='-')
c=getchar();
if(c=='-')
f=-1,c=getchar();
while(c<='9'&&c>='0')
r=r*10+c-'0',c=getchar();
return r*f;
}
int main(){
n=read();
while(s<n*n)
a[++f]=read(),s+=a[f];
s=0;
for(i=1;i<=f;i++){
if(i%2)
for(j=1;j<=a[i];j++){
printf("0");
s++;
if(s%n==0)
printf("\n");
}
else
for(j=1;j<=a[i];j++){
printf("1");
s++;
if(s%n==0)
printf("\n");
}
}
return 0;
}
洛谷加油!OI冲鸭!
题解 P1319 【压缩技术】的更多相关文章
- 洛谷P1319压缩技术 题解
题目传送门 这道题是入门难度的题.特别水...QWQ...... #include<bits/stdc++.h> using namespace std; *],top; int main ...
- P1319 压缩技术
很多小伙伴卡在此题的原因可能是因为不知道怎么让它输入无限个数字吧?除了用string,在这里我是看到“压缩码保证 N * N=交替的各位数之和”这一句话,想到用while循环.只要输入的数的总和t小于 ...
- (Java实现) 洛谷 P1319 压缩技术
题目描述 设某汉字由N X N的0和1的点阵图案组成,如下图.我们依照以下规则生成压缩码.连续一组数值:从汉字点阵图案的第一行第一个符号开始计算,按书写顺序从左到右,由上至下.第一个数表示连续有几个0 ...
- 【洛谷p1319】压缩技术
(许久不见,甚是想念) 压缩技术[传送门] 洛谷上滴算法标签: 然而这是一道入门难度的题.(不管不管,就写它了) 好的先说一下思路吧wait!我忘记了咋做的当时. 首先做题第一道坎儿,如何输入若干个( ...
- P1319 【压缩技术】
题面嘤嘤嘤 刚做完P1320,突然发现这里有一个没有括号的压缩技术,就抱着试一试的心态来做一做... 洛谷真有趣,让我正着做一遍,反着做一遍... 好,进入正题 这题比较便捷的是边读边做 具体细节看代 ...
- Java后端实现图片压缩技术
今天来说说图片压缩技术,为什么要使用图片压缩,图片上传不就完事了吗?对的,这在几年前可以这么说,因为几年前还没有现在这么大的并发,也没有现在这么关注性能. 如今手机很多,很多人都是通过手机访问网络或者 ...
- C语言中的内存压缩技术
C语言中的内存压缩技术 前言 在整个研究生阶段我都在参与一个LTE协议栈实现的项目,在这个项目中,我们利用一个自己编写的有限状态机框架将协议栈中每一层实现为一个内核模块.我们知道,在编写内核代码时需要 ...
- 转:关于数据库压缩技术的Survey
原文来自于:http://outofmemory.cn/mysql/database-compression-tech 昨天给团队内的小伙伴做了一个关于数据库压缩技术的Survey,现将其中可以公开的 ...
- 腾讯技术分享:GIF动图技术详解及手机QQ动态表情压缩技术实践
本文来自腾讯前端开发工程师“ wendygogogo”的技术分享,作者自评:“在Web前端摸爬滚打的码农一枚,对技术充满热情的菜鸟,致力为手Q的建设添砖加瓦.” 1.GIF格式的历史 GIF ( Gr ...
- 【RMAN】使用RMAN的 Compressed Backupsets备份压缩技术 (转载)
1.Oracle参考文档中关于RMAN备份压缩的描述1)关于如何通过调整RMAN参数启用取消备份压缩功能http://download.oracle.com/docs/cd/B19306_01/bac ...
随机推荐
- 原生 Ajax 封装 和 Axios 二次 封装
AJAX 异步的JavaScript与XML技术( Asynchronous JavaScript and XML ) Ajax 不需要任何浏览器插件,能在不更新整个页面的前提下维护数据,但需要用户允 ...
- STP-19-Port-Channel发现和配置
工程师在给一台交换机上的特定Port-Channel增加多个端口时,有一些配置参数必须相同,如下所示: 使用相同的速率和双工设置: 使用相同的操作模式(Trunk.Access.动态): 若不为T ...
- git教程1-gitlab部署
https://about.gitlab.com/install/#centos-7 https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/ gitla ...
- POJ1048 Follow My Logic
题目来源:http://poj.org/problem?id=1048 题目大意: 给定一个逻辑电路,求其逻辑输出.电路含一个或多个输入,以及一些双输入的与门/或门组成.电路图以下面形式的ASCII码 ...
- windows下安装python包
1.windows下成功安装好python后,在安装目录的Scripts目录下有easy_install和pip工具 2.如果没有安装pip,进入命令行,切换到python的安装目录下的Scripts ...
- ERROR: Unable to globalize '/usr/local/NONE/etc/php-fpm.d/*.conf' (ret = 2) from /usr/local/etc/php-fpm.conf at line WARNING: Nothing matches the include pattern '/usr/local/php7/etc/php-fpm.d/*.conf'
Building from source is not easy if something is a bit different, and I had a hard time with some di ...
- python大战机器学习——集成学习
集成学习是通过构建并结合多个学习器来完成学习任务.其工作流程为: 1)先产生一组“个体学习器”.在分类问题中,个体学习器也称为基类分类器 2)再使用某种策略将它们结合起来. 通常使用一种或者多种已有的 ...
- Oracle存储过程语法及编译过程讲解
语法 ? 1 2 3 4 5 6 7 8 9 10 CREATE [ORReplace]PROCEDURE[schema.] procedure_name [(argument [{IN|OUT|IN ...
- python入门之time模块和datetime模块
time模块 时间三种表示:时间戳(秒单位),struct_time(元组,可以分开调用),指定格式(格式化) time.sleep() 等待5秒钟 time.time() 返回时间戳 time.ct ...
- vbox和宿主机共享文件夹
首先,查看vbox安装的ubuntu是否支持vboxsf模块 sudo modprobe vboxsf dmesg | grep vboxsf 如果没有安装,需要安装vboxsf模块:(如果安装了请跳 ...