摘要:
将数据范围全部转化成一颗十叉树,深度优先遍历情况下第 K 个搜到的就是答案。 import java.util.Scanner; public class hdu6468_2 { static boolean ok; static int num = 0; public static void df 阅读全文
摘要:
皮克定理是指一个计算点阵中顶点在格点上的多边形面积公式,该公式可以表示为2S=2a+b-2,其中a表示多边形内部的点数,b表示多边形边界上的点数,s表示多边形的面积。 多边形边界上的整数点怎么求呢? 当然是gcd啦~~ gcd(x1-x2, y1-y2)就是这条边上整数点的个数。但是仅仅一条边是不准 阅读全文
摘要:
1、匈牙利算法; 2、二分图最大匹配 import java.util.Scanner; public class Main { public static boolean find(int cur, int[] pre, boolean[][] map, boolean[] vis){ for ( 阅读全文
摘要:
用f(n)表示n个人满足条件的结果,那么如果最后一个人是m的话,那么前n-1个满足条件即可,就是f(n-1); 如果最后一个是f那么这个还无法推出结果,那么往前再考虑一位:那么后三位可能是:mmf, fmf, mff, fff,其中fff和fmf不满足题意所以我们不考虑,但是如果是 mmf的话那么前 阅读全文
摘要:
排序一下就ok了 #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; char s[30]; struct node { int x; int y; }a[105]; int cmp(node a 阅读全文
摘要:
/* 题意:给n 求满足i*j+i+j=n(0<i<=j)方案数 思路:xy+x+y=n (x+1)(y+1)=x*y+x+y+1=n+1; 即求n+1的因子对数 参考:https://blog.csdn.net/Puppettt/article/details/83030925?ops_reque 阅读全文
摘要:
看了一眼题目,简单dp问题,但超时了一晚上,试了各种方法无法解决,最终放弃java,改用C直接过,我哭了。。。。 #include<stdio.h> #include<string.h> #define maxn 200010 int dp[maxn],ans[maxn],map[maxn]; in 阅读全文
摘要:
状态转移方程 if (j==2*i+1) { dp[j][i] = dp[j-2][i-1]+ (val[j]-val[j-1])*(val[j]-val[j-1]); }else { dp[j][i] = Math.min(dp[j-1][i], dp[j-2][i-1]+ (val[j]-val 阅读全文
摘要:
给定一个序列,询问是否能删除一个数让它成为非递减或者非递增的序列。 nlogn一直过不了,所以选择了以下方式。。。 因为删除一个嘛,先证明删除一个能不能是非递减的(非递增的把序列倒过来搞一次就行了) 首先,对一个序列前后两个数做差 比如说序列 3 1 4 1 5 做差后(即1-3,4-1,1-4,5 阅读全文
摘要:
求最长子序列的和。 dp[i] = max(dp[i] , dp[j] + xx[i])。 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] 阅读全文