A1128 | 逻辑想象能力、简洁高效美观的代码、memset的使用情景
写了三遍才AC,这真是对智商极大的侮辱
C++代码:
#include <stdio.h>
#include <memory.h>
#include <math.h>
#include <string>
#include <vector>
#include <set>
#include <stack>
#include <queue>
#include <algorithm>
#include <map> #define I scanf
#define OL puts
#define O printf
#define F(a,b,c) for(a=b;a<c;a++)
#define FF(a,b) for(a=0;a<b;a++)
#define FG(a,b) for(a=b-1;a>=0;a--)
#define LEN 10000
#define MAX 0x06FFFFFF
#define V vector<int> using namespace std; int C[][LEN];//col, diag1, diag2 int main(){
// freopen("d:/input/A1128.txt","r",stdin);
int i,n,m;
scanf("%d",&n);
while(n-->){
scanf("%d",&m);
memset(C,,sizeof(C));
bool ok=;
F(i,,m+){
int r=i;
int c;
scanf("%d",&c);
int d1=r-c+m;
int d2=c-r+m;
if(!ok) continue;
if(C[][c] || C[][d1] || C[][d2]){
ok=;
}else{
C[][c]=;
C[][d1]=;
C[][d2]=;
}
}
OL(ok ? "YES" : "NO");
}
return ;
}
1.应快速思考出对角线的ID表达式
2.应写出简洁高效美观的代码,原来的代码感觉写的太愚蠢了,也没有通过最后一个case。然后我在网上看到这段代码(左):
被深深的震撼到了,居然可以写的这么简洁,并且用二维数组代替我原来写的四个数组。然后我删掉了花20分钟写的代码,用了5分钟重写了一遍(右)。
3.memset的使用情景:
memset只能赋值全是0(0x0……0),或者全是1(0xF……F),后者 反映在int上,就是用补码表示的-1。memset的方便之处在于他可以对高维数组进行初始赋值,并且速度相对较快。
4.sizeof的返回值
如果是已经分配好内存的静态数组,如int arr[LEN],sizeof(arr)的返回值就是4*LEN
如果是分配的堆,如int *arr=new int[LEN],sizeof(arr)的返回值就是4
A1128 | 逻辑想象能力、简洁高效美观的代码、memset的使用情景的更多相关文章
- Chrome简洁高效管理下载项
每次要查看下载记录时,Chrome新建下载标签页的速度能让我抓狂 之前用的 Chrono 界面太过传统,而且还不能点击打开.所以一直在寻找好用的下载管理插件,经过多次在拓展商城搜索比对,找到了这款拓展 ...
- R数据分析:如何简洁高效地展示统计结果
之前给大家写过一篇数据清洗的文章,解决的问题是你拿到原始数据后如何快速地对数据进行处理,处理到你基本上可以拿来分析的地步,其中介绍了如何选变量如何筛选个案,变量重新编码,如何去重,如何替换缺失值,如何 ...
- jQuery --checkbox全选和取消全选简洁高效的解决办法
最近在公司做了一个小项目,其中有一个全选和取消全选的这么一个模块,搞了半天找不到一种最佳的解决方案!后来通过各种努力找到了一种简洁高效的解决办法,这里想和大家分享一下.有问题的话,还望各路大神指导一二 ...
- Js 日期选择,可以的一个页面中重复使用本JS日历,兼容IE及火狐等主流浏览器,而且界面简洁、美观,操作体验也不错。
<html> <head> <title>Js日期选择器并自动加入到输入框中</title> <meta http-equiv="con ...
- 2015.1.15 利用Oracle函数插入表结构 Bulk collect into 不用循环,简洁高效
如果表结构只对应一个字段,可以 select col1 bulk collect into 变量,不用游标循环,简洁高效 create or replace function get_airway_s ...
- C#7.2——编写安全高效的C#代码 c# 中模拟一个模式匹配及匹配值抽取 走进 LINQ 的世界 移除Excel工作表密码保护小工具含C#源代码 腾讯QQ会员中心g_tk32算法【C#版】
C#7.2——编写安全高效的C#代码 2018-11-07 18:59 by 沉睡的木木夕, 123 阅读, 0 评论, 收藏, 编辑 原文地址:https://docs.microsoft.com/ ...
- 编写高效的Android代码
编写高效的Android代码 毫无疑问,基于Android平台的设备一定是嵌入式设备.现代的手持设备不仅仅是一部电话那么简单,它还是一个小型的手持电脑,但是,即使是最快的最高端的手持设备也远远比不上一 ...
- 编写高效的jQuery代码
http://www.css88.com/jqapi-1.9/ 编写高效的jQuery代码 最近写了很多的js,虽然效果都实现了,但是总感觉自己写的js在性能上还能有很大的提升.本文我计划总结一些网上 ...
- 高效重构 C++ 代码
引言 Martin Fowler的<重构:改善既有代码的设计>一书从2003年问世至今已有十几年时间了,按照计算机领域日新月异的变化速度,重构已经算是一门陈旧的技术了.但是陈旧并不代表不重 ...
随机推荐
- React实例------红绿灯
概述 一个react的demo的实例,适合初学react的新手练习. 效果 用webpack打包后的目录结构 index.html react的封装,复用与Java的类似,面向对象的编程思想.所以in ...
- Map接口---Day20
Map接口概述: 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等, 这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系 ...
- JavaScript---正则使用,日期Date的使用,Math的使用,JS面向对象(工厂模式,元模型创建对象,Object添加方法)
JavaScript---正则使用,日期Date的使用,Math的使用,JS面向对象(工厂模式,元模型创建对象,Object添加方法) 一丶正则的用法 创建正则对象: 方式一: var reg=new ...
- js如何保留两位小数,并进行四舍五入
保留两位小数,并进行四舍五入使用js函数 toFixed() 函数传递一个参数(Number) Number就为需要保留小数的位数 具体实现代码 <script language="j ...
- 40、js技巧(持续更新。。。)
1.深拷贝对象: const a={name:'aaa',age:11} const b=JSON.parse(JSON.stringify(a)) 2.获取数组极值: let list = [1, ...
- AttributeError: module 'tensorflow' has no attribute 'Session'
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_33440324/article/ ...
- C#8.0——异步流(AsyncStream)
异步流(AsyncStream) 原文地址:https://github.com/dotnet/roslyn/blob/master/docs/features/async-streams.md 注意 ...
- C++使用通配符查找文件(FindFirstFile)
调用 FindFirstFile 和 FindNextFile 可搜索某个目录下的相应文件. BOOL SearchFilesByWildcard(WCHAR *wildcardPath) { HAN ...
- 常用内置模块(三)--subprocess、re
一.subprocess模块 进程:一个正在运行的程序 子进程:在父进程运行的过程中在其内部又开启了一个进程,即子进程. 作用:用于执行系统命令 os.system也可以获取当前的进程信息,但是它只能 ...
- 第十周LINUX 学习笔记
LVS集群nat丶DR HA:高可用 平均无故障时间/(平均无故障时间+平均修复时间) 负载均衡 次序lb(负载)——>ha()LB tcp:lvs,haproxy 应用 ...