蛤蛤,大二lab作业的——重载了“cin>>” “cout<<” “+” “-” “*” ”/“运算符的高精度代码来一发。(关键词:运算符重载,面向对象的程序设计,友元函数,引用类型)【修改自cojs原来的代码】
|
|
O(n^2)的DP
|
|
并查集+tarjan求强连通+特殊处理的spfa
|
|
BFS状态最多2^15-1种,秒之
|
|
从10X10的表找规律,
然后每个程序现场打表(好浪费……),再输出 |
|
上午的打开O2优化过了
下午的不开O2优化过了 方法是一样的:泛化背包 优化处理: 1、数组降维。减少不必要的循环次数。 2、并不是把所有的背包都当做泛化背包,生成泛化函数,而是仅把有附件的背包泛化处理。 |
|
我先是看了Chrome写的是否翻译,然后点了否。
然后看题,然后逐字地看题。 然后看了输入输出格式。 然后有部分没看懂,然后回去又看了一遍。 然后又有一些部分没看懂,然后回去又看了一遍。 然后我往下接着看了两行。 然后就没有然后了。 @ ⑨ |
|
|
|
好久才发现:在闲暇时遇到了一个工作,必须做,别无选择,只能做,这是规定。
如下才是唯一存在选择的情况——在闲暇时同时出现多个开始时间一样的工作。 前期错误想法:有一条坐标从1到n的待填线段,另有m条小线段,填入几条小线段,使线段上每个点至多有一条小线段覆盖于其上,同时使剩下的小线段无法再填入,且未覆盖的间隙最大。 错误想法得到的错误样例结果:8(只做1、4两份工作) |
|
改写为
DP+高精度+现场打表 了。 |
|
回楼上,怎么不可以,搜的是数目分布情况,剩下的用数学计算——
然后有了这些高精度运算不就行了(没加优化,程序中都用上了): bint bchange(int num) int bcom(bint a,bint b) bint bplus(bint a,bint b) bint bsub(bint a,bint b) bint bmul(bint a,bint b) bint bdiv(bint a,bint b) void bprint(bint a) bint stepmul(bint num,int level) (省略) |
|
罪过,罪过。
|
|
“不超过 0.01 即可算做正确”-->就是说最好多保留几位
|
|
纯搜索打表
|
|
BFS
used[1010][2530] --> used[位置][时间mod【c的最小公倍数】] 其中c[i]=a[i]+b[i] c最小公倍数<=2520 状态最多1000x2520种,最差O(300万) 搜索到答案直接输出 |
|
两个树规
|
|
两种情况未考虑
1、半径<队员高导致开一个负数的根号 2、坐标(0,h)与(x0,h)及相关点未考虑 另:说好的“各个测试点0.5s”呢? |
|
原来我的新算法并不需要开long long。
|
|
为何今日开int过了?
|
|
初次筛素数
|