摘要:
题意:有n个男生和n个女生,玩结婚游戏,由女生选择男生;女生可以选择不会和她吵架的男生以及不会和她闺蜜吵架的男生,闺蜜的闺蜜也是闺蜜。问你最多可以进行多少轮,每一轮每个女生只能选择一个之前她没选过的男生。 思路:显然最少进行0轮,最多进行n轮,所以我们可以对轮数进行二分;源点到女生连一条容量为轮数的 阅读全文
摘要:
题意:有n个城市,m条双向边,有一群小偷从s前往t偷东西,警察叔叔们想要逮捕小偷们,现在告诉你在每座城市需要多少警察才能抓住这个城市的小偷,为什么说这个城市,因为小偷们会分开跑;然后题目还说不能在s和t逮捕小偷。问需要的最少警力是多少? 分析:这个问题可以变成这样:需要在哪些城市部署警力才能使得小偷 阅读全文
摘要:
首先要明白图论的几个定义: 点覆盖、最小点覆盖: 点覆盖集即一个点集,使得所有边至少有一个端点在集合里。或者说是“点” 覆盖了所有“边”。。 最小点覆盖(minimum vertex covering): 点最少的点覆盖。 点覆盖数(vertex covering number): 最小点覆盖的点数 阅读全文
摘要:
题意:现有m门课程需要复习,已知每门课程的基础分和学分,共有n天可以复习,每天分为k个时间段,每个时间段可以复习一门课程,并使这门课程的分数加一,问在不挂科的情况下最高的绩点。 思路:(没做过费用流的转这里:http://www.cnblogs.com/L-King/p/5316359.html), 阅读全文
摘要:
计算几何头疼的地方一般在于代码量大和精度问题,代码量问题只要平时注意积累模板一般就不成问题了。精度问题则不好说,有时候一个精度问题就可能成为一道题的瓶颈,简直“画龙点睛”。这些年的题目基本是朝着越来越不卡精度的方向发展了,但是也不乏一些%^&%题#$%$^,另外有些常识不管题目卡不卡,都是应该知道的 阅读全文
摘要:
在一些特殊的比赛中,我们需要用一个暴力程序来验证一个采取了高效算法的程序是否正确,所以就有了对拍。 对拍程序: @echo off :loop rand.exe>data.in std.exe<data.in>std.out my.exe<data.in>my.out fc my.out std.o 阅读全文
摘要:
异或运算符∧也称XOR运算符。它的规则是若参加运算的两个二进位同号,则结果为0(假);异号则为1(真)。即0∧0=0,0∧1=1,1∧1=0。 性质: (1).与1异或会翻转 (2).与0异或保持不变 (3).一个数异或它本身等于0 (4).每一位的结果只与该位有关。 应用: (1).使特定位翻转 阅读全文
摘要:
数据类型用long long的话差不多60之后就会开始越界了。 typedef long long LL; const int N=60; LL c[N][N]; void C() { int i,j; for(i=0;i<N;i++) c[i][0]=c[i][i]=1; for(i=1;i<N; 阅读全文
摘要:
最长递增(上升)子序列问题:在一列数中寻找一些数,这些数满足:任意两个数a[i]和a[j],若i<j,必有a[i]<a[j],这样最长的子序列称为最长递增(上升)子序列。 考虑两个数a[x]和a[y],x>y且a[x]<a[y],且dp[x]=dp[y],当a[t]要选择时,到底取哪一个构成最优的呢 阅读全文
摘要:
二分查找是应用于不经常修改的并且频繁查找的有序数组中的一种查找算法,时间复杂度O(nlogn); 常用的几种模式为: 1,查找某个关键字是否在数组中出现 2,查找第一个比关键字大的值的位置 3,查找最后一个比关键字小的值的位置 以下是我个人写的这三种常用的模板: #include<stdio.h> 阅读全文