摘要:
二维 map map >map.find(x) 查找,如果没有返回值是 map.end()bool(map[x]) 查找,但是一旦访问下标那么就会产生一个节点map.empty() 判空map.size() 大小 阅读全文
摘要:
这明明就是给纯C选手的大杀器啊。题意:给你k坐标,表示 X,Y 有值C,有 3种操作1) 交换A,B两行2) 交换A,B两列3) 询问(A,B)的值解题思路:map离散化解题代码:// File Name: 1007.cpp// Author: darkdream// Created Time: 2... 阅读全文
摘要:
题意:给你一段长为n的路,每一个单位长度可以放一种塔,这里有三种塔。1)对正在经过这座塔的敌人进行 x 每秒伤害的攻击2)对于已经经过这塔的敌人进行y每秒的伤害攻击3)对已经经过这个塔的敌人放慢速度,使得原先为 经过一个单位时间为 t的速度变为 t+k解题思路:我们可以知道,第一种塔一定是放在最后面... 阅读全文
摘要:
题意:给你n个字符串,给你一个序列,两个人轮流取一个字符使得现有的字符串是n个字符串里面的前缀,最后谁不能取谁就输掉这局,但是他们要玩K局,谁在K局赢了就等于赢了一整场比赛。解题思路:字典树找是否有 必输 或者 必赢 的策略,如果同时有必赢或者必输的策略,那必定是first赢,如果只有必赢,那只需要... 阅读全文
摘要:
题意:给你一个有重复数字的序列,每一次你选一个值,删除这个值(不删除等于这个值的其他值),然后再删除等于a[i] - 1 和 a[i] +1 的其他值,得到a[i]的价值,问你最多能得到多少价值解题思路:其实就是一个DP,不能连续取 dp[i] = max(dp[i-1],d[i] + dp[i-2... 阅读全文
摘要:
题意:给你一个N×M的简单图,其中有门,墙,通道,和文件,打开每扇门必须要有某一把特定的钥匙,问你最多能拿到几个文件解题思路:深度优先,每一次走一个格子将它标记以后都不走,遇到门以后如果有钥匙,将门打开,如果没有,將门加入队列,搜完以后,遍历没有打开的门看是否已经有钥匙了,如果有 从门开始dfs,直... 阅读全文
摘要:
题意:给你n个二维平面上的矩形,可以两两覆盖,问最后覆盖的总面积为多少解题思路:1)矩形状分割,可以知道,每多出一个矩形就和前面所有产生的矩形判断,看是有相交,如果有的话,就对前面的矩形进行分割,最多可以分割成8块,因为这个算法是n×n的算法时间复杂度,所以我们还需要在枚举的时候加速,采用引导值(下... 阅读全文
摘要:
题意:给你一个N×M的矩阵,一个格子可以放一个苹果树产量为1,也可以施肥使得上下左右的苹果树产量加倍(可叠加)。问你最多能够得到多少苹果解题思路:简单的构造问题,我们只需要交替放就行了。解题代码: 1 // File Name: 1005.cpp 2 // Author: darkdream 3 /... 阅读全文
摘要:
题意:一个数列每一次将它变为 bi = ai+1 - ai 最后数组变为一个数,问你这个数答案为多少。解题思路:最开始以为这个数一定是在int范围以内的,但是推出了公式就不湿了 公式应该是 C(n,0)*a[n] - C(n,1)*a[n-1] + C(n,2)*a[n-2] ....一直到 a[... 阅读全文
摘要:
题意:求逆序对解题思路:1)树状数组 + 离散化解题代码: 1 // File Name: a.cpp 2 // Author: darkdream 3 // Created Time: 2014年08月05日 星期二 12时05分09秒 4 5 #include 6 #include 7 #in... 阅读全文