摘要:
题意: 给n*m个格子,初始时每个格子中有个数值为0,部分格子中含有炸弹,每个炸弹爆炸可以将周围的8个非炸弹格子中的数值加1,求全部炸弹炸完后那些非0且非炸弹格子中的数是多少。思路: 另开一个矩阵,每炸弹一炸就9个格子全加1,全炸完后再输出时判断是否为0,若是则输出'-',否则,若是炸弹格子则输... 阅读全文
摘要:
题意: 有n个格子,一开始全部面向top。接下来的每次修改F a b ,如果 a>b则将a~b之间的格子全面置为向右,否则置为向左。对于每个询问Q输出向左、top、右的数量。思路: 普通线段树。每个结点中保存三个值,分别对应3个方向的数量。要设置一下lazy_tag以减少时间消耗,因为有可能Q远... 阅读全文
摘要:
题意: 输入一个序列,每个数字小于16,序列元素个数小于9. 要求将这个序列所有可能出现的顺序输出,而且要字典序。思路: 先排序,输出该升序序列,再用next_permutation进行转变即可,它会调整一次序列,并且字典序是比传入的序列要大一些,也就是离传入序列字典序最近的序列。 1 #inc... 阅读全文
摘要:
题意: 每行给出一个人名和一个int值,人名可重复出现。要求对同一个人名统计int值,最大的先输出,若相同,则按照人名出现次数,若再相同,则按照人名字典序。思路: 输入完全部进行排序,写个比较函数传进去sort即可。 1 #include 2 using namespace std; 3 4... 阅读全文
摘要:
题意: 比较两个串,有三种情况:完全相同,可见字符相同,不同。每个字符串以'-'结尾。难点在输入。思路: 字符逐个读入,直到'-'为止,读出两串就可以直接进行判断。如果不足两串则结束。输入时需要注意:输入第一个串时可能不足一个串,读到EOF要及时结束,别一直循环。 1 //#include 2... 阅读全文
摘要:
题意: 给出多个double数,去掉其最小的和最大的,再对余下的求均值。思路: 再输入时将最大和最小去掉,顺便统计非最值的和,输出时除一下个数即可。 1 #include 2 using namespace std; 3 4 int main() 5 { 6 //freopen("i... 阅读全文
摘要:
题意:给一棵人名树,按层输出,同层则按名字的字典序输出。思路:首先对每个人名做索引,确定其在哪一层,按层装进一个set,再按层输出就自动排好序了。 1 #include 2 using namespace std; 3 vector > ord; //每层一个set,自动按照字典序排好了 4... 阅读全文
摘要:
题意: 给一个有n*m格子的矩形,设每格边长100,要从(1,1)走到(n,m)需要耗(n+m)*100,但是其中有一些格子是可以直接穿过的,也就是走对角线,是100*根号2长,给出k个可以穿过的格子,要求最短路径是多少?思路: 研究一下知道当选择了某个可穿过的格子(x,y),那么对于任意格子(... 阅读全文