思维
Dicer_
A imaginative boy!(i think~~)
展开
-
【UVa】562 - Dividing coins(思维,01背包)
题目 两个海盗让你分金币,如果他们两个分到的金币差的绝对值不是最小的他们就会杀了你。 改变思路,假设金币总和为sum,相当于你拥有sum/2的背包,求最大价值,然后就变成了最简单的01背包了。 AC代码: #include<iostream> #include<algorithm> #include<stdio.h> #include<stri原创 2018-08-07 17:08:08 · 114 阅读 · 0 评论 -
【杭电oj】2955-Robberies(思维,小数01背包)
题目 题目很经典,有两个思维的转换,一个是用钱数dp,还有一个是将被抓几率转化为逃跑几率。 AC代码: #include<iostream> #include<algorithm> #include<stdio.h> #include<string.h> using namespace std; double dp[1原创 2018-08-07 17:46:56 · 166 阅读 · 0 评论 -
【CodeForces】675C - Money Transfers(思维)
题目链接 题意:p城有n家银行,第i个银行与第i+1,i-1个银行相邻,特殊的,1与n相邻,即这些银行形成了一个环。你在n家银行都有账户,并且n个账户上的钱数或正或负,但总和为0,现在你需要通过转账,将你的n个账户余额全部更改为0,求最小操作数。 思路:假设我们可以将这n家银行分成k段连续的区间,每个区间内银行余额和为0,那么我们只需对每个区间内进行移动即可,若第i个区间长度为 bi...原创 2018-08-28 17:19:53 · 250 阅读 · 0 评论 -
【Codeforces】1037 - D. Valid BFS? (思维)
题目链接 题意:给出你一棵树,然后给出一个遍历顺序,问:该序列是否为这棵树的可能BFS序。你只需考虑从1开始遍历的情况。 思路:本来自己写的想着是只要当前这个点的步数大于等于前一个点就可行,但其实不对,这个条件不充分。 是有效的bfs序的充分的条件应该是:层数不降且父节点顺序不降。 看到前几的大佬代码更简洁,只是按照进队列的顺序排了一个序,这样就可以我们保证自己写的BFS序最可能是符合所给...原创 2018-09-03 23:02:04 · 388 阅读 · 0 评论 -
【Codeforces】1038 - 个人总结(思维)
比赛连接 A. Equality: 题意:给出一个长度为n的字符串,求前k个大写字母出现次数相同的最长子序列。 思路:因为是子序列,不用保证连续,所以只要去前k个大写字母中出现次数最小的那个值乘上k即可。 ans=k∗min(a1,a2...ak),ai表示第k个大写字母出现的次数ans=k∗min(a1,a2...ak),ai表示第k个大写字母出现的次数ans = k*min(a_1,a...原创 2018-09-07 09:50:16 · 386 阅读 · 0 评论 -
【洛谷】P1783 海滩防御(最小生成树+思维)
题目链接 本来以为是一道计算几何,然后看大佬的代码发现竟然是最小生成树?? 能想到最小生成树很诡异,建图也很诡异。 最后相当于求0-n+1的这条路上的最大边权。 列数就是该点的横坐标。 建完图套一下Krustra的板子就好了。 #pragma GCC optimize(2) #pragma GCC optimize(3) #include <bits/stdc++.h> using n...原创 2018-09-25 22:23:38 · 356 阅读 · 1 评论