ACM的小技巧

ACM常见英文翻译 ACM常见英文翻译通用数论图论字符串计算几何其它 通用 denote 表示 elements 元素 variable 变量 abbreviation 缩写 rise上升 fall下降 match 匹配 calculate 计算 reduction 压缩 data structures 数据结构 optimization 最优 dynamic programming 动态规划 distinct 不同的 cycle 循环 execute 执行 in the range of 在…范围内 indentical 阅读详情

ACM做题过程中的一些小技巧。

1.一般用C语言节约空间,要用C++库函数或STL时才用C++;

cout、cin和printf、scanf最好不要混用。

大数据输入输出时最好不要用cin、cout,防止超时。

2.有时候int型不够用,可以用long long或__int64型(两个下划线__)。

值类型表示值介于 -2^63 ( -9,223,372,036,854,775,808) 到2^63-1(+9,223,372,036,854,775,807 )之间的整数。

printf("%I64d",a); //__int64 一般VC编译器使用(虽然有的OJ用g++,但是动态链接库用的windows的,所以要用%I64d输入输出)

printf("%lld",a); //long long 一般g++编译器使用

3.OJ判断是只看输出结果的,所以不要要多余的提示输出。

所以大部分题处理一组数据后可以直接输出,就不需要用数组保存每一个Case的数据。

while(case--)

{

    scanf(...);

    ......

    printf(...);

}

4.纯字符串用puts()输出。

数据大时最好用scanf()、printf()减少时间。

先用scanf(),再用gets()会读入回车。所以在中间加一个getchar();

不要使用gets(),请使用

char * fgets ( char * str, int num, FILE * stream );
fgets(str, len, stdin);

scanf("%c%c",&c1,&c2)会读入空格;建议用%s读取字符串,取第一个字符。

5.

读到文件的结尾,程序自动结束
while( ( scanf(“%d”, &a) ) != -1 )
while( ( scanf(“%d”, &a) ) != EOF)
while( ( scanf(“%d”, &a) ) == 1 )
while( ~( scanf(“%d”, &a) )  )
读到一个0时,程序结束
while( scanf(“%d”, &a) , a)
while( scanf(“%d”, &a)!=EOF && a)
读到多个0时,程序结束
while( scanf(“%d%d%d”, &a, &b, &c), a+b+c ) //a,b,c非负
while( scanf(“%d%d%d”, &a, &b, &c), a|b|c )

6.数组定义int a[10] = {0};可以对其全部元素赋值为0;

数组太大不要这样,防止CE。

全局变量,静态变量自动初始化为0;

函数中定义的变量存储在栈空间中,数组太大需要定义为全局变量(存储在堆空间中)。

7.有很多数学题是有规律的,直接推公式或用递归、循环。

8.圆周率=acos(-1.0)
自然对数=exp(1.0)

9.如果要乘或除2^n,用位移运算速度快。a>>n;a<<n;

10.定义数组时,数组大小最好比告诉的最大范围大一点。

字符数组大小必须比字符串最大长度大1。

处理字符数组时不要忘了在最后加'\0'或者0。

 11.擅用三目运算符

int max(int a,int b)

{

    return a>b?a:b;

}

int gcd(int m,int n)

{

    return n?gcd(n,m%n):m;

}

 int abs(int a)

{

    return a<0?-a:a;

}

12.将乘法转换成加法减少时间

log(a*b)=log(a)+log(b)

将乘法转换成除法防止溢出

a/(b*c)=a/b/c

 13.排序要求不高时可以用C++的STL模板函数sort(),stable_sort()

int a[n]={...};

sort(a,a+n);

bool cmp(int m,int n)

{

    return m>n;

}

sort(a,a+n,cmp);

 14.有的题数据范围小但是计算量大可以用打表法

先把结果算出来保存在数组里,要用时直接取出来。

 15.浮点数比较时最好控制精度

#define eps 1e-6

fabs(a-b)<eps

16.有些字符串与整型的转换函数是非标准的

可以使用sscanf()和sprintf()代替

sscanf(s,"%d",&n);//从字符串s中读入整数n

sprintf(s,"%d",n);//将n转换为字符串s

 

魔神翼原创

MATLAB实战:5步搞定GNSS单点定位解算(附完整代码) 本文提供了一份基于MATLAB的GNSS单点定位实战指南。通过5个核心步骤,详细讲解了如何从卫星坐标和伪距观测值出发,利用最小二乘迭代算法,构建并实现一个完整的单点定位解算器。文章附有完整代码,并涵盖精度评估与结果分析,适合GNSS初学者和MATLAB用户快速上手实践。 阅读详情

相关推荐

一文掌握SourceTree使用(超级详细)

SourceTree是一款开源的代码仓库客户端工具,界面美观,操作简单,具有代码克隆、本地创建、提交代码、撤销修改,拉取(pull)代码、上传(push)代码、合并分支等操作。对于软件开发人员是一款必备的应用软件。

GM_115的博客 3万+

ACM做题思路小结

最近又开始准备比赛,打算先重新把掌握的知识复习一遍,复习过程中发现也有不少收获,简单小结一下,之后陆续更新。 大三下了啊,最后一年。。.     1. 对于在限制条件下的最优化问题,时间上优化的突破口也在限制条件。 eg 给n条边,从中选3条拼成一个三角形,要求周长最大的三角形 搜索时各种剪枝策略   2. 为了设计算法, 灵活的想象力(!!!) 算法的基础知识 也是必不可少

勿忘初衷 4590

ms17-010 永恒之蓝漏洞利用+抓包分析过程

一、实验环境: 1、攻击机:Kali 1)攻击工具:msf 2)分析工具:wireshark 3)IP地址:192.168.204.157(自动获得) 2、靶 机:Windows7 1)版本:SP1 2)开启网络共享(SMB协议) 3)关闭防火墙 4)IP地址:192.168.204.150(自动获得) 3、网卡连接方式:Vmnet8(NAT) 二、实验步骤: ...

qq_41976183的博客 6947

scanf("%lld",&a)==1的用法

http://ybt.ssoier.cn:8088/problem_show.php?pid=1378 由于a[i][j]的输入不一定是一个数,所以要用scanf("%lld",&a)==1来判断。 当遇到可能是数字也可能不是的情况时,要用scanf("%lld",&a)==1来判断! ...

weixin_40736501的博客 1532

【记录】游戏体验报告怎么写(自我成长篇)

2019年3月更新: 这个倒是不用推翻,我个人虽然写的东西还是有一些偏差的,但是“表哥”说的倒是没毛病的,这篇主要是为了记录用,具体的干货也有,都在图片里,请自行提取 =====18年初原答案 作为一个游戏策划新人,游戏分析可能抓不到点子上,试着总结记录一下游戏体验报告分析的成长(因为水平不同,视野可能也不一样,也许之后几年回头看这些东西都是小儿科或者是错误的,所以只写出当下的想...

eat_human的博客 6万+

K8s(二十一):在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)

🔴 K8s(二十一):在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 3万+

scanf 超时输入设置

。。。

HongDaYu的搬砖之路 592

数字盲水印嵌入和提取的实现基于小波变换DWT算法

数字盲水印是指在不知道原始图像的情况下,在其上嵌入水印并在后续的提取过程中能够恢复出原始水印的一种技术。本文介绍的数字盲水印嵌入和提取的实现方法基于小波变换DWT算法。具体来讲,DWT将信号或图像进行二次下采样和卷积滤波,使得高频分量的图像信息被集中在一个小区域内,方便进行嵌入和提取操作。其中 a 表示嵌入强度,而 watermark 则是用于嵌入的水印图像,这里我们嵌入的是一个全灰的图像。通过以上的代码,我们可以实现数字盲水印的嵌入和提取,并在一定程度上保护数字图片的版权安全。

HackWhisper的博客 510

ACM节约每一个字节 C++实现

节约每一个字节 Description John在做一个项目,项目对存储容量有着近乎苛刻的要求,为此John需要对一些东西进行压缩存储。John的第一个问题就是一大堆的字符串,存储它们太占地方了,为此他想了一个办法:如果字符串具有相同的后缀,那么就把这么字符串的相同后缀和在一起,这样就能节约一点空间了。比如说有两个字符串分别为“Programming”和“Something”,这样它们有相...

pleasetojava 198

QT上位机开发(掌握一点c++基础)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 c++是c语言的补充和扩展,本身的语法构成也是在一直迭代中。相信很多同学上大学读书的时候,或多或少对c语言有所了解,对它的变量、指针、函数也应该不陌生。既然大家都有c语言基础的话,那么在这方面稍微拓展一下的话,就可以学会c++了。当然c++本身的内容很多,很多方面还很琐碎,但我们学习的时候还是应该把精力放在那些经常使用到的语法上面。

嵌入式-老费,一个分享专业嵌入式知识的blog 1131

《PLECS仿真与实战:从建模到高端应用》-专栏文件目录

《PLECS仿真与实战:从建模到高端应用》是一本系统介绍PLECS电力电子仿真软件的实用指南。全书共10章,首先介绍软件安装与基础操作,包括RC电路仿真等入门内容;随后深入讲解各类电力电子电路的建模与仿真,涵盖整流、交交变换、直流变换、逆变等电路;最后探讨PWM控制建模和直流调速系统等高端应用。书中配有丰富的示例程序和波形分析方法,附录还包含电力电子器件、代码生成等实用资料。该书适合电力电子领域工程师和学生系统学习电路仿真技术。

540

ACM小技巧总结

文章目录ACM小技巧总结取模 ACM小技巧总结 取模 我们经常会对很大的数进行1e9+7的取模运算,但是取模运算其实非常慢,如果取模非常多在运算中花费主要时间,可以进行一定的优化 例如 a,b&lt; 1e9+7 for(int i =1;i &lt;= 1000000; ++i) c = (a+b)%mod 非常耗时间 但如果使用 for(int i = 1;i &lt;= 100000...

海边拾贝,沧海一粟 310

《AI应用架构师:解锁AI智能体于经济学研究洞察经济趋势的关键密码》

当经济学家还在为“疫情后的消费复苏曲线”“ChatGPT对就业的长期影响”等非线性问题挠头时,AI应用架构师已经用AI智能体搭建了一个“数字经济沙盘”:里面有会砍价的消费者、会算成本的企业、会调政策的政府,每个智能体像真实角色一样思考决策,甚至能模拟出“政策出台3个月后失业率的微妙变化”。这篇文章将带你从架构师视角拆解:如何用AI智能体破解经济学研究的3大痛点(数据爆炸、非线性复杂、动态演化)?如何设计能“活起来”的经济智能体?如何用智能体模拟出能指导现实的经济趋势?

AI天才研究院 902

ACM做题小技巧《转》

原文地址:ACM做题小技巧《转》作者:我的ACM博文来自:http://blog.youkuaiyun.com/power721/article/details/4503056 ACM做题过程中的一些小技巧。 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout、cin和printf、scanf最好不要混用。 大数据输入输出时最好不要用cin、cout,防止超时。 2.有时候int型不够

jiqiujia的专栏 536

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

acm代码小技巧总结

acm代码小技巧总结: 1.RMQ:(Range Minimum/Maximum Query),即区间最值查询,这是一种在线算法,所谓在线算法,是指用户每次输入一个查询,便马上处理一个查询。 设二维数组dp[i][j]表示从第i位开始连续2^j个数中的最小值。例如dp[2][1]就表示从第二位数开始连续两个数的最小值(也就是从第二位数到第三位数的最小值) 初始化(复杂度O(nlogn)): voi...

weixin_43727680的博客 376

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ACM小技巧

(更新—ing) 1、memset是对字节进行操作,每个字节相同时可以用memset(一个字节有8位),比如(int型的):0x3f3f3f3f、0、-1,,,(-1是按反码存的,每一位都是1);所以memset不能赋1,比如memset(&a,1,sizeof(int));实际上给a赋的是00000001000000010000000...

qq_43803508的博客 432

【ACM】的小技巧

ACM做题过程中的一些小技巧。 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout、cin和printf、scanf最好不要混用。 大数据输入输出时最好不要用cin、cout,防止超时。 2.有时候int型不够用,可以用long long或__int64型(两个下划线__)。 值类型表示值介于 -2^63 ( -9,223,372,036,854,775,808) 到2^6

nono_thin的专栏 712

ACM编程中的小技巧总结 (持续更新)

ACM中有很多小技巧和有趣的写法。虽然无法改变算法的复杂度,但是却可以缩短代码长度、减少寻址时间和冗余状态等等。 在此对写程序的时候一些小技巧以及一些函数的简洁写法进行总结,以后也会不断更新。 当然很多函数它本来就这么短,反正大概我知道的一行函数我都会记下来。 不过很多技巧我只是从实用的角度出发,如果要跟我讨论严谨证明的话,麻烦您。。出门。。左转。。。。Google... 其中可能借鉴了一

frog的小池塘 3793

ACM 刷题小技巧【转】

转载自URl-team ACM做题过程中的一些小技巧。 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout、cin和printf、scanf最好不要混用。 大数据输入输出时最好不要用cin、cout,防止超时。 2.有时候int型不够用,可以用long long或__int64型(两个下划线__)。 值类型表示值介于 -2^63 ( -9,223,372,036

iai64824的博客 1625

ACM做题过程中的一些小技巧。

ACM做题过程中的一些小技巧。 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout、cin和printf、scanf最好不要混用。 2.有时候int型不够用,可以用long long或__int64型(两个下划线__)。 值类型表示值介于 -2^63 ( -9,223,372,036,854,775,808) 到2^63-1(+9,223,372,036,854,775,8...

FreeGo~ 404
上一篇: 从零开始学算法:十种排序算法介绍(下)
下一篇: 判定被7整除的简易方法
power721
博客等级 码龄18年 176粉丝 135原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值