【钓起来的tips系列】
●求n的阶乘:
#include<bits/stdc++.h>
using namespace std;
int n;
int jc(int k)
{
if(k==)return ;
else return jc(k-)*k;
} /*int jc(int k)
{ //我自己不太喜欢的一种写法_(:3z)__
int x;
if(k==1)x=1;
else x=k*jc(k-1);
return x;
}*/ int main()
{
cin>>n;
cout<<jc(n);
return ;
}
●~scanf的作用
位运算以达到控制循环的作用
https://blog.csdn.net/wtyvhreal/article/details/42006055(写得很好的一篇qwq)
●数学香瓜
- 要计算只包含加法、减法和乘法的整数表达式除以正整数n的余数,可以在 每步计算之后对n取余,结果不变。
●乱七八糟
- scanf只能一个一个读单词,不读空格
- sort形式:sort(first_pointer,first_pointer+n,cmp) //没有cmp比较函数就默认升序排列
- while(scanf("%s",&st)==1)输入神用
cin/cout之所以慢,是因为它多了和STDIO同步的过程,因此我们只需要把这个同步关系禁用就可以了,为了禁用这个同步关系,我们需要在main()函数开头加上以下代码:
ios::sync_with_stdio(false);
如此一来,同步关系就被禁用了,当然副作用是无法再使用scanf/printf。
- 【判断素数改进版】
int is_prime(int x)
{
if(x<=)return ;
int m=floor(sart(x)+0.5);
for(int i=;i<x;i++)
if(x%i==)return ;
return ;
}
●前綴和
- 听老师讲搜索和dp时总听到前缀和blabla,一直搞不懂,当然要查查啦!
- 引自K_rew的博客:https://blog.csdn.net/K_rew/article/details/50527287
一维前缀和
这个优化主要是用来在O(1)时间内求出一个序列a中,a[i]+a[i+1]+……+a[j]的和。具体原理十分简单:用sum[i]表示(a[1]+a[2]+……+a[i]),其中sum[0]=0,则(a[i]+a[i+1]+……+a[j])即等于sum[j]-sum[i-1]。
二维前缀和
同理,有一维就有二维。对于一个矩阵a,我们也能在O(1)时间内求出子矩阵[x1~x2][y1~y2]的和。设sum[i][j]为子矩阵[1~i][1~j]的和。则由容斥原理得:
sum[0][j]=sum[i][0]=0
a[x1~x2][y1~y2]=sum[x2][y2]-sum[x1-1][y2]-sum[x2][y1-1]+sum[x1-1][y1-1]
- c++输入输出流
sprintf妙啊!
代码来源:https://blog.csdn.net/jllongbell/article/details/79092891
int main(){
char str[256] = { 0 };
int data = 1024;
//将data转换为字符串
sprintf(str,"%d",data);
//获取data的十六进制
sprintf(str,"0x%X",data);
//获取data的八进制
sprintf(str,"0%o",data);
const char *s1 = "Hello";
const char *s2 = "World";
//连接字符串s1和s2
sprintf(str,"%s %s",s1,s2);
cout<<str<<endl;
return 0;
}2.但是!更妙的是这个stringstream啊!
stringstream被群里dalao嘲讽了…_(:3/_)__我不管我就觉得他好用哼
https://blog.csdn.net/qq_28114615/article/details/85778797
(lrj大佬:可以把string作为流进行读写,定义在sstream头文件中。 虽然string和sstream都很方便,但string很慢,sstream更慢,应谨慎使用)
- cin>>t有时候比while啥玩意快的,详细可以看机器翻译那道题的提交记录……
- #define For(i,l,r) for (register int i=l; i<=r; i++) 压行快乐
- int本来就是signed int,int = signed int = signed 有时候直接 #define int long long 了,就要把int main改成signed main
- __builtin_popcount计算二进制某数中1的个数
【钓起来的tips系列】的更多相关文章
- 【转】Android Studio-1.2版本设置教程
如果重新安装Android Studio的话要重新配置风格选项啥的,这篇是个很好的教程,原文链接:http://blog.csdn.net/skykingf/article/details/45485 ...
- Android 学习资料收集
收集整理这份资料灵感来自于 trip_to_iOS, 征得同意引用了该资料的开头描述 收集整理这份资料主要帮助初学者学习 Android 开发, 希望能快速帮助到他们快速入门, 找到适合自己学习资料, ...
- 转载:Android Studio 快捷键
Android Studio使用技巧系列教程(一) 分类: android studio2015-07-08 10:04 4774人阅读 评论(6) 收藏 举报 android开发ideandroid ...
- [jstips]向数组中插入一个元素
向现有数组中插入一个元素是经常会见到的一个需求.你可以: 使用push将元素插入到数组的尾部: 使用unshift将元素插入到数组的头部: 使用splice将元素插入到数组的中间: 上面那些方法都是常 ...
- [jstips]undefined和null的区别
undefined是指一个变量没有被声明,或者被声明了但是还没有被赋值 null是一个特定值(an assignment value ),代表"没有值"(no value) Jav ...
- 如何利用 AVDictionary 配置参数(转)
本文是我的 FFMPEG Tips 系列的第五篇文章,准备介绍下 ffmpeg 提供的一个非常好用的健值对工具:AVDictionary,特别是对于没有 map 容器的 c 代码,可以充分利用它来配置 ...
- Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解
Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全 Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...
- [译]MVC网站教程(四):MVC4网站中集成jqGrid表格插件(系列完结)
目录 1. 介绍 2. 软件环境 3. 在运行示例代码之前(源代码 + 示例登陆帐号) 4. jqGrid和AJAX 5. GridSettings 6. ...
- 前端工程师技能之photoshop巧用系列第一篇——准备篇
× 目录 [1]作用 [2]初始化 [3]常用工具[4]快捷键 前面的话 photoshop是前端工程师无法回避的一个软件,这个软件本身很强大,但我们仅仅需要通过这个工具来完成基本的切图工作即可.本文 ...
随机推荐
- mha0.56版本安装使用排错
1.master_check_ssh --conf=/etc/app1.conf 这个检查就报错的我觉得百分之九十都是ssh之间连接问题.务必要保证各节点之间都可以免秘钥访问! 2.mas ...
- Linux内核系统调用处理过程
原创作品转载请注明出处 + https://github.com/mengning/linuxkernel/ 学号末三位:168 下载并编译Linux5.0 xz -d linux-.tar.xz . ...
- Python---HTML表单
一. http:80 https:443 -------------------------- 二.
- 【Android】进程间通信IPC——Binder
Binder是Android中的跨进程通信方式,bindService的时候,服务端返回Binder对象,通过该对象客户端可以从服务端获取数据.在进程间通信IPC——AIDL中创建了ICustomAi ...
- 【Flutter学习】基本组件之AppBar顶部导航栏
一,概述 AppBar 显示在app的顶部.AppBar包含5大部分,如下图: 二,构造函数及参数含义 构造函数 AppBar({ Key key, this.leading, //在标题前面显示的一 ...
- 名字竞技场 V3.0
更新内容 1.加入新boss,更高的难度. 2.支持组队模式勒! 3.针对大家反应的人物属性算法进行了修改,现在人物属性更多的取决于名字而不是随机数 4.用户界面优化 INF.代码拿走赞留下,不然你赢 ...
- Linux的安装教程
CentOS 6 + VMWare: 资源:https://pan.baidu.com/s/1AA4gaMpaoVaMor-tRU-n7A 提取码:6e8r ( 内附 VMWare 14 激活 ...
- camera placement (paraview)
# 'renderView1' is the view name# current camera placement for renderView1 renderView1.CameraPositio ...
- LOJ 6278 数列分块入门2
[题解] 分块.块内排序.块内二分出第一个大于等于c的数. #include<cstdio> #include<algorithm> #include<cmath> ...
- 清北学堂模拟赛d4t1 a
分析:大模拟,没什么好说的.我在考场上犯了一个超级低级的错误:while (scanf("%s",s + 1)),导致了死循环,血的教训啊,以后要记住了. /* 1.没有发生改变, ...