随笔分类 - 

摘要:二维区间DP/记忆化搜索 原题是求均方差 需要用数学知识化简 转化为求最小平方和 状态:f[k][x1][y1][x2][y2] 表示把左上端点为(x1,y1)、右下端点为(x2,y2)的棋盘分割成k个部分所得的最小平方和 边界:当k=1时 为(x1,y1)到(x2,y2)的和的平方 目标:f[n] 阅读全文
posted @ 2019-02-16 23:52 宇興 阅读(171) 评论(0) 推荐(0)
摘要:~~~ include include include using namespace std; int T,n,m; int solve(int m,int n){//m个苹果 n个盘子 if(m 阅读全文
posted @ 2019-02-11 00:04 宇興 阅读(121) 评论(0) 推荐(0)
摘要:+ 题意:给出N个数,对于存有每两个数的差值的序列求中位数(一共$C_n^2$个),如果这个序列有偶数个元素,就取中间偏小的作为中位数。 + 思路: 注意到题目中对于每两个数求差值,所有数的排列顺序不影响结果,所以可以先对数组排序。 因为答案具有单调性,所以可以二分答案ans,check函数中求出差 阅读全文
posted @ 2019-02-10 23:58 宇興 阅读(221) 评论(0) 推荐(0)
摘要:思路:高斯消元 把所有已知点列出 可以得到n+1个方程 形如 $ (a_1 A)^2 +(b_1 B)^2 + ... +(n_1 N)^2 = dis $ $ (a_2 A)^2 +(b_2 B)^2 + ... +(n_2 N)^2 = dis $ $ (a_3 A)^2 +(b_3 B)^2 阅读全文
posted @ 2019-02-09 22:53 宇興 阅读(116) 评论(0) 推荐(0)
摘要:$ c_x y_{i_1} + (i_1 x) y_{i_1} s include include using namespace std; typedef long long LL; int n,s; LL ans,now=0x3f3f3f3f3f3f3f3f; int main(){ scanf 阅读全文
posted @ 2019-02-04 19:56 宇興 阅读(93) 评论(0) 推荐(0)
摘要:1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 typedef unsigned long long ull; 7 const int N=100005,p=131;//p进制 hash 8 int T,n,ans,len1,len2; 9 ull f[N],key1[N],k... 阅读全文
posted @ 2019-02-04 18:48 宇興 阅读(95) 评论(0) 推荐(0)
摘要:1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 typedef long long LL; 7 typedef set::iterator setit; 8 const LL INF=0x3f3f3f3f3f3f3f3f; 9 int n; 10 LL ans; 11 set s; 12 ... 阅读全文
posted @ 2019-02-04 00:38 宇興 阅读(113) 评论(0) 推荐(0)
摘要:1 //思路:贪心+堆 2 //不太好写啊 (抄的题解...) 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 const int maxk=50005; 10 using namespace std; 11 int ans,k,n,c,cnt1,cnt2,... 阅读全文
posted @ 2019-02-03 20:05 宇興 阅读(179) 评论(0) 推荐(0)
摘要:1 //思路:贪心+堆 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 const int maxn=1000005; 9 int n,k,ans,ans_l,ans_r;//ans--答案区间长度 ans_l--答案区间左端点 ans_r--答案区间右端点 10... 阅读全文
posted @ 2019-02-02 22:22 宇興 阅读(183) 评论(0) 推荐(0)
摘要:1 //贪心+优先队列(二叉堆) 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 const int N=1000050; 8 #define val first 9 #define dis second 10 int T,n,l,s,ans,now; 11 typedef pair p;... 阅读全文
posted @ 2019-01-29 23:29 宇興
摘要:1 #include 2 #include 3 #include 4 using namespace std; 5 const int size=1000020,p=131; 6 typedef unsigned long long ULL; 7 ULL f[size],key[size]; 8 int T; 9 char tmp1[size],tmp2[size]; 10 ... 阅读全文
posted @ 2019-01-28 00:27 宇興 阅读(135) 评论(0) 推荐(0)
摘要:1 #include 2 using namespace std; 3 const int size=1000005,p=131; 4 typedef unsigned long long ULL;//自然溢出 5 ULL f[size],key[size]; 6 int n,T,l1,r1,l2,r2; 7 char tmp[size]; 8 int main(){ 9 ... 阅读全文
posted @ 2019-01-27 23:09 宇興 阅读(217) 评论(0) 推荐(1)
摘要:1 #include 2 using namespace std; 3 const int maxv=1000; 4 int v[7]={0,1,2,3,5,10,20},w[1005],num[7],tot,f[1005],ans; 5 int main() 6 { 7 scanf("%d%d%d%d%d%d",&num[1],&num[2],&num[3],&num[4... 阅读全文
posted @ 2019-01-24 18:45 宇興 阅读(204) 评论(0) 推荐(0)
摘要:1 //拓扑排序 坑点多 考验语文水平 2 #include 3 #include 4 using namespace std; 5 const int maxn=105,maxm=10005; 6 queue q; 7 struct edge{ 8 int to,dis;edge *Nex; 9 }e[maxm],*head[maxn]; 10 int top=-1;... 阅读全文
posted @ 2019-01-24 17:44 宇興 阅读(156) 评论(0) 推荐(0)
摘要:1 //拓扑排序求最长路 2 #include 3 #include 4 using namespace std; 5 const int INF=0x3f3f3f3f; 6 const int maxn=1505; 7 const int maxm=50005; 8 struct edge{ 9 int dis,to;edge *Nex; 10 }tmp[maxm]... 阅读全文
posted @ 2019-01-24 16:44 宇興 阅读(167) 评论(0) 推荐(0)
摘要:1 #include 2 using namespace std; 3 const int maxn=5005; 4 int n,len_ans=1,ans; 5 int a[maxn],d[maxn],len[maxn],f[maxn]; 6 int search(int l,int r,int val) 7 { 8 while(l>1; 11 if(d... 阅读全文
posted @ 2019-01-24 16:38 宇興 阅读(168) 评论(0) 推荐(0)
摘要:1 //拓扑排序 2 #include 3 #include 4 using namespace std; 5 const int maxn=100005; 6 const int maxm=200005; 7 struct edge{ 8 int to;edge *Nex; 9 }tmp[maxm],*head[maxn]; 10 int top=-1; 11 bo... 阅读全文
posted @ 2019-01-24 16:27 宇興 阅读(143) 评论(0) 推荐(0)
摘要:1 //01背包 价值等于体积 求所剩最小体积 2 #include 3 using namespace std; 4 const int maxn=35; 5 const int maxv=20005; 6 int c,n,v[maxn],f[maxv]; 7 int main() 8 { 9 scanf("%d%d",&c,&n); 10 for(int ... 阅读全文
posted @ 2019-01-24 13:15 宇興 阅读(202) 评论(0) 推荐(0)
摘要:1 //01背包 价值等于体积 2 //该题卡常 优化:当价值(体积)已超过背包容积时直接输出背包容积 3 #include 4 using namespace std; 5 const int maxn=5005; 6 const int maxv=50005; 7 int c,n,v[maxn],f[maxv]; 8 int main() 9 { 10 scanf... 阅读全文
posted @ 2019-01-24 13:13 宇興 阅读(152) 评论(0) 推荐(0)
摘要:1 //01背包 求背包内物品价值超过某一定值时的最小体积 2 #include 3 using namespace std; 4 const int maxv=10005; 5 const int maxn=10005; 6 int n,v_tot,w_tot,v[maxn],w[maxn],f[maxv],sumv,bound; 7 int main() 8 { 9 ... 阅读全文
posted @ 2019-01-24 13:11 宇興 阅读(172) 评论(0) 推荐(0)