摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 处理出起点到任意点的最短路以及最短路条数= dis[0][i],cnt[0][i] 然后 把所有的边反向 处理出在反图上终点到任意点的最短路以及最短路条数= dis[1][i],cnt[1][i] dis数组的初值为 1,表示无 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 状态压缩动规。 可以写成记忆化搜索的形式。 f[bit][p] 表示选取的菜的情况为bit(用0..2^(N) 1的二进制形式表示各个菜有没有选 然后上一道菜选的是第p道菜,剩下的菜选够m道的话能够获得的最大满意度. 显然这两个 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 2^y可以由两个2^(y 1)相加得到。 则有一个贪心的策略。 就是2^x尽量都变成2^(x+1) (即能够凑就尽量凑) 如果x还有剩余的话。答案递增1 而凑上去的数字,显然是可以合并成1步操作的。因为他们的和就是2^(x+1) 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 让你在n的因子里面找一个最大的数字x 且x的因子全都不是完全平方数(y^2,y 1) O(sqrt(n))找出n的所有因子。 然后O(sqrt(n))处理出1..N内的所有完全平方数。 用map存 对于x,看看它的因子里面有没有 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 连续两个如果不全是0就递增cnt 【代码】 cpp include using namespace std; int n,m; int main() { cin n m; int cnt = 0; for (int i = 1; 阅读全文