摘要: 这次小可可想解决的难题和中国象棋有关, 在一个N行M列的棋盘上,让你放若干个炮(可以是0个), 使得没有一个炮可以攻击到另一个炮,请问有多少种放置方法。 大家肯定很清楚,在中国象棋中炮的行走方式是:一个炮攻击到另一个炮,当且仅当它们在同一行或同一列中,且它们之间恰好 有一个棋子。 转换题目: 每行最 阅读全文
posted @ 2019-10-31 18:43 心若笺诗 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 很暴力的搜索,还没有什么剪枝...... 心得: 【1】如果只查询和修改,用bool比bitset快 【2】rnt在循环中会比int快 【3】减少简单的函数调用 #include<cstdio> #include<cstdlib> #include<bitset> #include<iostream 阅读全文
posted @ 2019-10-31 15:57 心若笺诗 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 一个比较奇怪的情况,每次砍掉一颗子树,其他会拓展, 求最小扩展数, 准备想dp,但是仔细看一下这个过程, 在某一阶段,我有dep_sz[nw]个点会继续扩展,其他的被砍了, 然后我挑一个点隔离,其他的还是继续扩展, 这里的哪个点怎么挑呢? 与子树节点和有关?贪心选择son_sz最大的点,会wa,因为 阅读全文
posted @ 2019-10-31 14:30 心若笺诗 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 大概的看了下思路,以后再写吧 神奇的三个点bfs 题目大意:在一张图中,以最少的步数将a,b,c移到对应的A,B,C上去。其中,每个2x2的方格都有障碍并且不能两个小写字母同时占据一个格子。 题目分析:为避免超时,先将图中所有能联通的空格建起一张图,然后再BFS。 听说双端很快,但是不想动..... 阅读全文
posted @ 2019-10-31 09:50 心若笺诗 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 典型的代价优先计算dp 难点就在计算代价上。。。 很巧的是,每次合并,代价就是i,j组成的序列中,开始了但是没有结束的字母种类数 【1】普通dp tle不知道多少个点 #include<cstdio> #include<cstdlib> #include<algorithm> #include<cs 阅读全文
posted @ 2019-10-31 09:30 心若笺诗 阅读(137) 评论(0) 推荐(0) 编辑