上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 69 下一页
摘要: 背包。dp[i]=1表示i这种差值能被组合出来,差值有负数,所以用sum表示0,0表示-sum,2*sum表示sum。 询问X的时候,只需看dp[sum+X]或者dp[sum-X]是否有一个为1,注意RE。 #include<cstdio> #include<cstring> #include<cm 阅读全文
posted @ 2016-02-02 09:17 Fighting_Heart 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 第一反应是在凸包上随便找一条边,然后找剩下n-2个点里面距离这条边最短的一个点,这三点就构成了符合要求的三角形。。然而。。精度被卡死。 换种思路,随便找两个点P1,P2,找剩下n-2个点中哪一个点与P1,P2形成的三角形面积最小,这三点构成了符合要求的三角形,然而我没写。。 最终这样写的,按X,Y进 阅读全文
posted @ 2016-02-02 09:13 Fighting_Heart 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 只要找出当前没用过的数字中,大于或等于当前这一列的最大值就可以 #include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<algorithm> using namespace std; const int 阅读全文
posted @ 2016-02-02 09:10 Fighting_Heart 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 水题,先都合成2,看看有没有1多的,有的话存起来,再把那些2合成3,看看有没有多的2,有的话再存起来。。。一直这样下去 #include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<algorithm> us 阅读全文
posted @ 2016-02-02 09:09 Fighting_Heart 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 数位DP。dp[i][j][k]表示有i位,首位为j,有k个1的二进制数字有几个。 很容易写出递推式: dp[i][0][k]+=dp[i-1][0][k]; dp[i][0][k]+=dp[i-1][1][k]; dp[i][1][k]+=dp[i-1][0][k-1]; dp[i][1][k]+ 阅读全文
posted @ 2016-01-29 23:03 Fighting_Heart 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 简单DP。dp[i][j]表示完成第i段,有j体力的情况下,获得的最小时间, 然后就可以递推: //高速跑 if(j-s[i].f1>=0) dp[i][j-s[i].f1]=min(dp[i][j-s[i].f1],dp[i-1][j]+s[i].t1); //中速跑 dp[i][j]=min(d 阅读全文
posted @ 2016-01-29 20:47 Fighting_Heart 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 网络流,Dinic G++ 964ms水过,SAP 620ms AC 源点到每一个防晒霜建边,容量为cover[i]; 每一个防晒霜与它能保护的奶牛之间连一条边,容量为1; 每一个奶牛连到汇点一条边,容量为1。 最大流就是答案。 Dinic模板: #include<cstdio> #include< 阅读全文
posted @ 2016-01-29 15:26 Fighting_Heart 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 数位DP,题意转换一下就是说,其B进制表示的各位数字都只能是0和1。 求区间L....R之间的符合要求数字有几个,可以使用容斥原理。 计算小于X的符合要求的数有几个的时候,我们需要先找到比X小的最大的符合要求的数字,然后以这个数字往下推导,和之前做的数位DP方法一样了。 dp[i][j][k]表示的 阅读全文
posted @ 2016-01-29 11:02 Fighting_Heart 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 数位DP dp[i][j][k][m]表示最高位为i,数字j在首位,之前是否出现过13,余数是m的情况下的个数 代码有详细注释,做完这题,感觉逐渐了解了数位DP #include <iostream> #include <cstdio> #include <cstdlib> #include <cs 阅读全文
posted @ 2016-01-28 18:35 Fighting_Heart 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 数位DP #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <queue> #include <vector> #include <cma 阅读全文
posted @ 2016-01-28 14:48 Fighting_Heart 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 数位DP #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <queue> #include <vector> #include <cma 阅读全文
posted @ 2016-01-27 22:58 Fighting_Heart 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 简单模拟 阅读全文
posted @ 2016-01-27 20:02 Fighting_Heart 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 先从衣服处理到裤子,在从裤子处理到鞋子 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <queue> #include <vector 阅读全文
posted @ 2016-01-27 20:01 Fighting_Heart 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 水题。。。但是研究了半天 最后发现是这样排序的,两个项目进行排序,哪一个代价小,哪一个放前面 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #inclu 阅读全文
posted @ 2016-01-27 20:00 Fighting_Heart 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 刚学的数位DP。 dp[i][j]表示,长度为i的数字,并且最高位为j的情况下的吉利的数字有几个 很显然dp[i][j]是由dp[i-1][0,1,2,3,.....9]推导而来的 处理出dp数组之后,我们能在o(1)效率内得到比某个数字小的吉利数有几个,然后容斥原理一减就是答案 #include 阅读全文
posted @ 2016-01-27 10:36 Fighting_Heart 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 这题本身并不难,但是给我的深深的教训就是——尽量少用STL!!!。我用map出事情了。#include #include #include #include #include #include #include #include #include #include using namespace s... 阅读全文
posted @ 2016-01-26 21:59 Fighting_Heart 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 水题。题目这样定义的,另f(x)为x有几位,x[i]=f(x[i-1]);求最小的i使得x[i]==x[i-1]#include#include#include#include#includeusing namespace std;char s[1000000+10];int x[1000000+1... 阅读全文
posted @ 2016-01-26 17:25 Fighting_Heart 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 求二分图的最小点覆盖集,并输出 对于每一个a[i][j]=1,我们从行i-->列j建立一条边 显然,这张图是一张二分图。左边的节点代表删除哪一行,右边的节点代表删除哪一列。中间的边代表所有a[i][j]为1的点。 现在,我们需要做的事情就是找出最少的点,使这些点覆盖住所有的边(即删去哪几行哪几列,没 阅读全文
posted @ 2016-01-26 16:56 Fighting_Heart 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 因为第一行和最后一行都是0,我们只需枚举最左边或最右边一列的01情况,即可得到整张表然后再检验表是否符合要求#include#include#include#include#include#include#includeusing namespace std;int T;int n,m;int a[... 阅读全文
posted @ 2016-01-25 22:28 Fighting_Heart 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 暴力搜索,据说精度卡的紧。。。但我是double过了的。#include#include#include#include#include#include#includeusing namespace std;const double eps=1e-8;int dir[4][2],t[4][2];do... 阅读全文
posted @ 2016-01-25 17:09 Fighting_Heart 阅读(159) 评论(0) 推荐(0) 编辑
上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 69 下一页