栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

JMU算法培训笔记week2Sun

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JMU算法培训笔记week2Sun

位运算

  • 左移/右移

左移:x< 等价于xy^2=(x(y的二次方))

  • debug范例应用
#define debug(x) cerr << #x << ": " << x << endl;

#x:将()内内容换为字符串

补:
cout:标准输出流
cerr:错误输出流

cout.tie(0):输出会变快

  • 位枚举

列举已知集合的子集):
首先外层循环,计算一共有几个子集,集合内有4个元素,所以一共有2^4=16种子集。每次i的值代表的二进制数中,1代表选中这一位代表的数字,由此构成16种子集。
然后是内层循环,j从0加到3,则是为了将i转化的二进制数上的位代表的数字输出。

接着将子集按从小到大排序

  • STL容器vector、set简单应用

集合set——插入会默认从小到大排序

sets;
s.insert(2);
s.insert(1);
for(int it:s)
//类型 变量:容器
{
cout < 

//c++11编译器使用auto,自动识别类型

for(auto it:s)
//类型 变量:容器
{
cout < 
  • vectorSTL容器,动态数组
vector  v;
v.push_back(j + 1);//往数组后面放j+1

set、vector结合如下:

set > s;//set<数据类型> name

如上使用s.insert(v);可以得到子集按顺序排序的集合。如图
使用代码

`for (vector v : s)
    {
        for (int it : v)
        {
            cout << it << ' ';
        }
        cout << 'n';
    }`

  • memset:数组统一赋值

  • memset(name,number,sizeof name)

  • 递归的时间问题
    如果是重复计算的值,算过一次之后存下来下一次直接用,不要重复计算

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/529692.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号