双创课作业
小组成员名单
416
有男酮!
DOSBOX与debug安装
汇编语言学习配套软件
关于strcpy的一些发现
来自和煤老板的一次偶然发现
由数据范围反推算法内容
时间复杂度分析
周记1
2022.11.7-2022.11.13
类型转换
隐式类型转换1.什么是隐式类型转换?就是程序在编译时有时会进行一些我们看不到的类型转换。这种转换我们叫做隐式类型转换。
2.怎样转换?一是算术转换,二是整型提升。
先说算术转换。
如果某个操作符的各个操作数属于不同类型,那么就需要转换类型,但是并不是随意转换参照下表:
1234567long doubledoublefloatunsigned long intlong intunsigned intint
如果某个操作数的类型在上面列表中排名较低,那么首先要先转换为另外一个操作数的类型后执行运算。
什么意思?就是假如一个操作数是int类型另一个操作数是double类型,那么会将int类型转换为double类型,再进行运算。
然后是整型提升。
整型提升:将出现的字符类型(char)和短整型(short)统一提升为int类型(特殊情况下,也会提升为unsigned int)
整形提升的意义:
表达式的整形运算要在cpu的相应运算器件内执行,cpu内整形运算器(ALU)的操作数的字节长度一般就是int字节长度,同时也是cpu的通用寄存器的长度。因此,即使两个char类型的相加,在cpu执行 ...
最短路-Floyd
Floyd最短路时间复杂度n^3注意一下几个问题1.44行:由于有重边,所以读入是要确保g[a][b]存的是a->b的‘最短’距离
2.49行:将重边舍去,g[i][i]保证为0;
3.动态规划 状态表示f(k,i,j)—从i到j且经过1-k中的点的最短距离 三重循环–>k在最外层,i和j可以互换
4.64行:不能用==/!=0x3f3f3f3f来判断是否不为/为通路因为由于存在负权边,所以g[i,j]=min(g[i,j],g[i,k]+g[k,j])时,i到k 和 k到j可能有一条为通路(长度为负),另一条不通(长度正无穷),此时本不应该更新g[i,j]却被更新了,即g[i,j]变小了。为了避免结果错误,故将判断条件改为>=0x3f3f3f3f/2 ,因为即便由于上述原因导致本不为通路的两点间距离变小,也不会减少0x3f3f3f3f/2(边长绝对值都不大),所以可以用该判条件
1234567891011121314151617181920212223242526272829303132333435363738#include<iostream&g ...
STL-map
map 与 unordered_map 的遍历1.while12345678map<int, int>::iterator iter; iter = _map.begin(); while(iter != _map.end()) { cout << iter->first << ' ' << iter->second << endl; iter++; }
2.for(本质上和第一种一样)12345map<int, int>::iterator iter;for(iter = _map.begin(); iter != _map.end(); iter++){ cout << iter->first << ' ' << iter->second << endl;}
3. auto12for(auto v:_ ...
blog_2
初学完 01 背包和完全背包后一点总结