上一页 1 ··· 30 31 32 33 34 35 36 37 38 ··· 71 下一页
摘要: 链接神奇的扫描线啊估计之前刷面积并的时候太急了 没来得及理解 。。有一大段代码是与面积并一模一样的 都是离散化 更新面积并是扫描的x 这次也一样因为周长只算外围的 所以扫描到一条x边时 要减去上一次扫描到的 对于Y方向上 就是与面积并不大一样的地方了看篇带图的讲解吧 网上的题解都大同小异 估计出自一人之手http://blog.sina.com.cn/s/blog_691ce2b7010177dz.html它是扫描的Y 其实方法是一样的 横过来就是对于我的代码 自己感觉不好理解在于求区间数 1 #include 2 #include 3 #include 4 #include 5 ... 阅读全文
posted @ 2013-09-13 19:38 _雨 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 链接这树着实不好理解啊讲解http://www.cnblogs.com/pony1993/archive/2012/07/17/2594544.html对于找K值 右区间的确定不是太理解。。先当模板贴着吧 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 100010 8 int tree[20][N],sum[20][N];//每层的数 及每层截止到i会放进左子树的个数 9 int cu[N],xu[N];//原数据 及排序后的数据10 void build(.. 阅读全文
posted @ 2013-09-13 19:13 _雨 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 链接树上的一些操作还是不是太好想 直接dfs下去 不是最优的一个节点最多保留两个度 如果它有两个以上的子节点 那么就与父节点断开 与k-2个子节点断开 再重新连 1 #pragma comment(linker, "/STACK:1024000000,1024000000") 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 2000010 9 struct node10 {11 int u,v,next;12 }ed[N=2)37 {38 .. 阅读全文
posted @ 2013-09-12 15:22 _雨 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 链接这题规律其实挺明显的 打表找规律估计都可以 正规点就是DP算出第N位所包含的good number的数量 如果给出的数是N+1位 就枚举各位上比原来小的数 加上下一位的dp值一个i写成g了 纠结了半天。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define LL __int64 8 LL dp[20][20],a,b,pp; 9 void init()10 {11 int i,j,g;12 for(i = 0 ; i = 1 ; i--)34 ... 阅读全文
posted @ 2013-09-11 20:58 _雨 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 链接dfs倒着搜 返回的路径不能满足相同的数最多 借鉴了下别人的代码。。先dp出来 再倒着标记一下 然后正回来一定可以满足了dp保存的是最小的不相同数 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define INF 0xfffffff 8 int dp[1010][10010]; 9 char s[1010]; 10 int flag,path[1010],k,m,pp[1010],f[1010][10100]; 11 int main() 12 { 13... 阅读全文
posted @ 2013-09-11 09:21 _雨 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 链接以前做的题 VJ太水了 数组里面的数可能会小于0 当时没判断 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int dp[100010],w[110],path[110],o,f[110],n,ff[110]; 8 int flag,tw; 9 void dfs(int sw,int v,int u)10 {11 int j,i;12 if(flag) return ;13 path[v] = u;14 if(sw==0)15 {16 ... 阅读全文
posted @ 2013-09-10 11:45 _雨 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 链接这题卡了挺久了 昨天试着用类似dfs的方法直接TLE在第二组 看了下题解,,发现s1,s2的范围是个幌子。。100位最大的s1900 s28100 觉得s1s2太大不敢开二维。。这样就简单了 类似背包 dp[s1][s2]表示组成s2s2最少的位数 其实就是装进去多少个数字 正好把s1s2装满把DP部分预处理之后放在外面 不然会超时 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define INF 0xfffffff 8 int s1,s2; 9 int dp[920][. 阅读全文
posted @ 2013-09-10 09:43 _雨 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 链接先初始化一下所有的回文串 再O(n*n)DP输出路径dfs 刚开始存所有回文 ME了 后来发现用不着 改了改了OK了 数据还挺强 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 4010 8 #define INF 0xfffffff 9 int dp[N]; 10 char s[4010]; 11 int path[2][4010],o[4010],q[4010][4010],k; 12 int g,flag,pp[2]; 13 void... 阅读全文
posted @ 2013-09-06 21:35 _雨 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 这几天扫了一下URAL上面简单的DP 第一题 简单递推1225. Flags 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define LL long long 7 LL dp[50][4]; 8 int main() 9 {10 int i,n;11 scanf("%d",&n);12 dp[1][1] = 1;dp[1][2] = 1;13 for(i =2 ; i 2 #include 3 #include 4 #include 5 #include 6 u... 阅读全文
posted @ 2013-09-06 19:23 _雨 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 链接dp[i][j] += dp[i-1][j-g];背包吧数据太大了 还是JAVA好用 1 import java.io.*; 2 import java.math.*; 3 import java.text.*; 4 import java.util.*; 5 public class Big { 6 public static void main(String[] args) 7 { 8 Scanner cin = new Scanner (System.in); 9 BigInteger[][] dp;10 dp = n... 阅读全文
posted @ 2013-09-05 10:59 _雨 阅读(203) 评论(0) 推荐(0) 编辑
上一页 1 ··· 30 31 32 33 34 35 36 37 38 ··· 71 下一页