题意,一个矩阵,上面可以横放或者竖着放骨牌(1X2)保证横的与横的不重叠,竖的和竖的不重叠,求拿掉最小的牌,使所有的都不重叠。
分析:一看,不重叠就是没有边,拿最少,就是留最多,最大独立集啊!二分图,n+m个-最大流(最大匹配)=ans。
简单题。
#include
#include
#include
#include
using namespace std;
const int inf=0...
分类:
其他好文 时间:
2014-08-01 19:52:32
阅读次数:
267
题目来源:挑战程序设计竞赛题目描述: 给定n个数字,选择四次,可以选择已经选择过的数字,问是否可以选出和为m的四个数。首先,最基本的做法: 枚举四层,每一层枚举出一个数,求出所有四个数字不同的排列。时间复杂度为O(N^4)。 for (int i1=1;i1<=n;i++) for (int...
分类:
其他好文 时间:
2014-08-01 19:24:42
阅读次数:
232
#include
int n,a[100005];
int main()
{
int i,j,h;
bool bo=true;
scanf("%d",&n);
for (i=0;i<n;i++)scanf("%d",&a[i]);
i=0;
while (a[i]<=a[i+1]&&i<n-1) i++;...
分类:
其他好文 时间:
2014-07-29 14:50:28
阅读次数:
198
简单题,当时竟然没有敲出来╮(╯▽╰)╭。。。
方法:每个时间点排序从小到大排序,之后扫一遍即可:是进的时间点就加人,反之出人。更新最大值即可。。。。囧。。。
#include
#include
#include
#include
#include
#include
#include
using namespace std;
struct times
{
bool io;
in...
分类:
其他好文 时间:
2014-07-28 15:58:23
阅读次数:
278
题目:在桌子边上罗扑克,使得扑克不掉下去,并且申处桌面最长,一直扑克数量求长度。
分析:简单题。第一个扑克一定摆在中间位置,长度是0.5;
每次,将前面的看成整体,下一个扑克当做上次的桌子,这样一定是最大,因为都在平衡边界;
整体i个扑克的重心在桌子的边沿位置即可,这时前i-1的整体重心一定在桌外,最后一重心在内...
分类:
其他好文 时间:
2014-07-28 15:50:23
阅读次数:
270
给出n个循环位置,每个位置有一定数量的盒子,每次操作可以使一个盒子转移到相邻位置,问最少需要转移多少次使得所有位置上的盒子的数量不会超过1个。简单题。对于每个位置,加边(s,i,a[i],0),(i,t,1,0)。对于相邻的位置加边(i,i+1,inf,1),(i,i-1,inf,1) 。显然最后我...
分类:
其他好文 时间:
2014-07-28 13:49:10
阅读次数:
189
并查集简单题#include #include using namespace std;#define max 30010int f[max];int getf(int k){ while(k!=f[k]){ k=f[k]; } return k;}void combine(int a,int b)...
分类:
其他好文 时间:
2014-07-27 23:31:09
阅读次数:
193
好几天没更了,这几天先是刚搬完砖,玩了一整天,接着乘火车回家,所以没做题。然后今晚做了这道简单题,最开始还WA了好几次,卧槽。。。怒了直接推倒重写。。。下面是题目总时间限制: 1000ms 内存限制: 65536kB描述输入一个字符串,以回车结束(字符串长度#include #include usi...
分类:
其他好文 时间:
2014-07-27 10:49:02
阅读次数:
266