- 博客(12)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 win10下安装Ubuntukylin+修复Ubuntu引导+双系统可选启动
为了方便以后给自己机器重装linux用,简单记录一下。如果有其他人有需要启动盘或者有其他问题可以留言。1)安装Ubuntukylin先在win10下,鼠标右键我的电脑,点击管理,打开磁盘那一栏,可以把之前不用的磁盘卷删除(会自动合并),如果你不知道那些没有名字但又占了空间的磁盘是干嘛用的,那就不要乱删;然后如果要将F或者G之类的已经写了字母的盘拿出一个来给Ubuntu的话,注意提前将里面重
2016-03-30 01:18:28 37922 2
原创 HDU2212
1)名字叫dfs,然而并不是用dfs。水的不得了,不应该浪费太多时间去想复杂算法,名字是来迷惑的;首先将0!~9!打表方便多次调用;实际上只要看到最大值:9!=362880,那么假设十个数都是9!那么所能到达的最大和也就是3628800,那么循环只要检测到1~3628800即可;这种看到不需要输入的题,也可以先用程序将所有答案暴力搜出,然后写个输出程序将找到的答案输出即可。#include
2016-03-24 14:03:34 425
原创 sdut2605山东省赛第四届/( A^f(1)+A^f(2)+ ... + A^f(n) )% P/存储中间值/将大数打表并用两个数组组合表示
1)如果用快速幂求A^X,那么整道题的最坏时间复杂度为:O(n)=(40*(10^6)*log(n)=O(10^9),超时。仔细看这道题的特点,如果用快速幂计算单个A^X还好,但是当n足够大,我们需要计算n个A^X时,不如提前打表,将所有可能的A^X计算出来,存入数组,直接调用来得方便。而(A^X)最多有P个不同值,P最大为10^9,数组的最大长度不过264144个(一个数组占1M的栈空间,1个i
2016-03-20 17:51:36 881
原创 DP背包问题小结(01背包,完全背包,需恰好装满或不需,一维DP、二维DP)
1)01背包基础,求背包所装物品价值之和的最大值,不要求恰好装满时,采用易于理解的二维DP数组存储。#include #include using namespace std;int dp[1010][1010];int vp[1010];int wp[1010];int main(){ int kase;cin>>kase; while(kase--)
2016-03-17 22:53:17 5910
原创 STL(map和二维map/hdu1263)
#include#include#includeusing namespace std;int main(){mapm;m["a"]=1;m["b"]=2;m["c"]=3;map::iterator it;for(it=m.begin();it!=m.end();++it)co
2016-03-17 18:44:37 5077 2
原创 hdu1007最近点对-分治策略-具体优化
1)AC总是让人感到兴奋。上一篇求最大连续子数组之和了解到分治策略之后,本题先是找到中间界线,依然分成三部分,左边集合、右边集合、两个点分别在左边和右边的集合的情况。前两种情况不断递归,直到该集合内只有两个点,则求两点之间距离并返回,第三种情况如果常规来做,则是左边集合中的每一个点都要对应求到右边集合中每个点的距离,比较出其中最小的,此处O((n/2)^2),时间复杂度依然是n^2层次,于是继
2016-03-08 21:23:52 880
原创 结构体数组-sort自定义快排
1)#include #include //memser()#include //sort()//#include using namespace std;struct Num{ double x; double y;}Number[100010];bool cmp(const Num &a,const Num &b){ return a.x<b.x;
2016-03-08 18:54:39 3048
原创 hdu1231 连续子数组最大和(分治,动态规划)
1)开心,学习伪码之后,自己敲完的代码;发现《导论》在纯粹的算法知识方面比紫书讲的更细致,更好懂一些。分治策略,旨在将原先的大问题不断分解成规模小的问题,比如最大连续子数组,以中间界线分三部分,左边是中界线左边的元素,右边是中界线右边的元素,第三部分是两边都有分布的元素集合,因为最大连续子数组之和一定是这三部分之其中的一个,所以比较这三个中最大的,就是最大连续子数组之和,也是该函数的返回值。而
2016-03-07 21:52:27 1778
原创 hdu1016枚举递归-经典DFS-简单回溯入门
1)注意格式要求(@1234);先顺时针输出再逆时针输出并不用存储所有可能再倒着输出一遍,因为逆时针的输出被包含在前者之中,这里我应该是没读懂题意;之前在想怎么运行完一次之后或者找不到之后如何退回到上一步,是不是要return什么啊之类的,其实执行完递归就自动退回了,如果符合边界条件就输出,不符合就继续执行,然后自动退回到上一层,在上一层这个递归语句之后只是需要将相应的“标记数组”之类的,或者cu
2016-03-06 16:33:31 816
原创 hdu1538博弈论-海盗分金-博弈入门
0)觉得博弈游戏蛮有意思的,这算是第一个题把。1)AC代码。思路,对于每一个海盗来说,优先性由高到低依次为,保命,得金,杀人。所以可能为了保命、得金、杀更多人而支持或反对决策者。第一种情况时,金子足够,第二种是金子不够、决策者自己不要金子去贿赂别人而保住命且没有人会死,第三种情况是金子不够、决策者不要金子去贿赂别人但依然会死,支持他的人(不支持自己也是必死)也可能会死。#include
2016-03-03 21:06:25 1242
原创 UVA122二叉树BFS广搜入门
1)AC代码#include #include #include #include #include using namespace std;const int maxn=3000;char str[maxn];bool failed;vector ans;struct Node{ Node *left,*right; int v; bool h
2016-03-02 20:19:00 494
原创 hdu1548(BFS广搜入门)
1)#include #include #include using namespace std;char grid[13][13];int mapp[13][13];int main(){ int row,col,ent; while(cin>>row>>col&&row!=0){ cin>>ent; //memset(jilu
2016-03-01 23:32:39 864
acm水题 二叉树模拟 hdu5444,能想到的测试数据都测了还是WA,求大神
2016-03-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人