NWERC 2012 Problem E Edge Case】的更多相关文章

比赛的时候刷了一点小聪明,发现这个数列是卢卡斯数,一个递推关系像斐波拉契数列的数列: 我不知道怎么证明,如果哪天无意中会证了再加上: 这题唯一的难点就是大数运算: 直接用JAVA 代码: import java.io.PrintWriter; import java.math.BigInteger; import java.util.Scanner; public class Main { Scanner scan=new Scanner(System.in); PrintWriter out=…
一个最小费用最大流的简单建模题: 比赛的时候和小珺合力想到了这个题目的模型: 方法:拆点+边的容量为1 这样就可以保证他们不会在点上和边上相遇了! 感谢刘汝佳大神的模板,让我这个网络流的小白A了这个题. 代码: #include<cstdio> #include<cstring> #include<vector> #include<queue> #define maxn 42005 #define inf 99999 using namespace std;…
刚刚开始想的是用二分的方法做,没想到这个题目这么水,直接暴力就行: 代码: #include<cstdio> #include<algorithm> #define maxn 1000005 using namespace std; int num[maxn]; int main() { int x,n,y,ma; while(scanf("%d",&x)!=EOF) { ma=x*; scanf("%d",&n); ;i&l…
又是个2-sat的模板题: 反正评委的选择必须有一个是正确的,1错误,那么2就必须正确: 这就是一个2-sat问题. 直接上白书的模板啊,不过稍微要注意的一点是对于第一个点必须要选择,不然就违反了题意: 代码: #include<cstdio> #define maxn 2005 #define maxm 4005 #include<vector> #include<cstring> using namespace std; struct twosat { int n;…
这是一个系列博客,最终目的是要做一个基于 HTML Canvas 的.类似于微软 Office 的 Web Office 套件(包括:文档.表格.幻灯片--等等). 博客园:<从零开始, 开发一个 Web Office 套件>系列博客目录 富文本编辑器 Github repo 地址:https://github.com/zhaokang555/canvas-text-editor 上一节我们初步完成了拖动选中文字的feature,不过还遗留了一些 edge case.这篇文章我们来处理它们.…
题意:n(3<=n<=10000)个结点组成一个圈,点顺次连接为边,求没有公共点的边集个数. 分析: 1.推规律,n=3有4个,n=4有7个,n=5有11个,n=6有18个,--,a[i] = a[i - 1] + a[i - 2] 2.边集,包括空集 import java.math.BigInteger; import java.util.Scanner; public class Main { public static BigInteger[] a = new BigInteger[1…
题意: 有n个点围成一圈,这n个点的匹配就是没有公共点的边集(这些边只能连接一圈中相邻的两点),求所有匹配的个数. 额,我不会分析..=_=|| 算了几个数,找找规律发现它满足斐波那契数列的递推关系,f(n) = f(n-1) + f(n-2) 自从会用了Java的BigInteger,就懒得写C的高精度了. import java.io.*; import java.util.*; import java.math.*; public class Main { static PrintWrit…
一个简单的题: 感觉像计算几何,其实并用不到什么计算几何的知识: 方法: 首先对每条边判断一下,看他们能够把平面分成多少份: 然后用边来对点划分集合,首先初始化为一个集合: 最后如果点的集合等于平面的份数,就说明每块都有一个士兵: 代码: #include<cstdio> #include<vector> #define maxn 105 #define maxm 50005 using namespace std; int a[maxn],b[maxn],c[maxn]; lon…
字符串处理的题目: 学习了一下string类的一些用法: 这个代码花的时间很长,其实可以更加优化: 代码: #include<iostream> #include<string> using namespace std; ]= {"he","h","li","be","b","c","n","o","f"…
题目不难,感觉像是一个拓扑排序,要用双端队列来维护: 要注意细节,不然WA到死  = =! #include<cstdio> #include<cstring> #include<vector> #define maxn 100005 using namespace std; *maxn],count[][maxn],tail,head,n,m,in[maxn]; vector<int>ve[maxn]; int solve(int lab) { head=…