A 理清思路模拟

B 先对3个array排序,然后每次从某个array的头删数,可保证每个数必被处理1次,O(n log n) (set维护也行)

C 分3类情况讨论,一种为: p1≤p2 && p1 + p2≤c,先排序维护前缀与Pre2(根据下标的prefix),枚举p2,剩余c-p2,

  若p2*2>c,p1为prefix[c-p2];若p2*2<=c,p1=Pre2[i-1]

  还有一种tourist的写法:只根据下标维护prefix,对于p2,找到最大的p1(p1+p2<=c),再满足p1<=p2的条件即可!!!

  反正要做到补充不漏地统计

D (想到2^34的做法后没有考虑到2可以特判,虽然有些想法但是没有坚持想下去QAQ,其实挺simple的)

注意审题,只要能把另一个rectangle放进去即可,没有规定哪个方向,即不要求按照顺序对应

//以前一道noip模拟题,也是分析题目性质,降数据范围

把所给的n个数字从大到小排; 
显然同样是选一个数字,选大的数字肯定比较优; 
问题只是要让哪一条边乘上它; 
这里可以知道 
如果全都是2的话 
最多需要34个数字; 
因为log2(100000)≈17 
然后两条边都最多需要17个数字乘; 
所以是34个数字; 
但要给34个数字配的话; 
复杂度是2^34;这是不合适的; 
但是注意到; 
如果从某一位开始之后,都是2; 
那么就不存在分配问题了; 
即分配给谁都是一样的了,因为都是乘2了; 
而之前都是大于2的;也就是至少为3; 
而log3(100000)≈11 
也就是说等于2的数字所花费的时间可以近似忽略掉; 
直接while处理一下就好; 
而大于2的;最多22个; 
而2^22是可以接受的了,只有400W左右; 
写个dfs,从某一位开始如果变成2,后面就不再继续dfs,直接贪心能分配就分配;

++++++++++++++++++++++++++++++++++++++++++++

当然,DP也可以,预处理长宽至少分别扩大a、b倍。

对于每个expansion,dp[i]表示长扩展i倍时j的最大扩大倍数,每次看是否dp[a]==b

方程:每个expansion只应用于长或宽,得之。

CF Playrix Codescapes Cup Problems Analysis的更多相关文章

  1. Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2)(A.暴力,B.优先队列,C.dp乱搞)

    A. Carrot Cakes time limit per test:1 second memory limit per test:256 megabytes input:standard inpu ...

  2. Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2) D. Field expansion

    D. Field expansion time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  3. Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2) 一夜回到小学生

    我从来没想过自己可以被支配的这么惨,大神讲这个场不容易掉分的啊 A. Carrot Cakes time limit per test 1 second memory limit per test 2 ...

  4. Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2) E - Aquarium decoration 贪心 + 平衡树

    E - Aquarium decoration 枚举两个人都喜欢的个数,就能得到单个喜欢的个数,然后用平衡树维护前k大的和. #include<bits/stdc++.h> #define ...

  5. C.Fountains(Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2)+线段树+RMQ)

    题目链接:http://codeforces.com/contest/799/problem/C 题目: 题意: 给你n种喷泉的价格和漂亮值,这n种喷泉题目指定用钻石或现金支付(分别用D和C表示),C ...

  6. 【动态规划】【滚动数组】【搜索】Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2) D. Field expansion

    显然将扩张按从大到小排序之后,只有不超过前34个有效. d[i][j]表示使用前i个扩张,当length为j时,所能得到的最大的width是多少. 然后用二重循环更新即可, d[i][j*A[i]]= ...

  7. 【预处理】【分类讨论】Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2) C. Fountains

    分几种情况讨论: (1)仅用C或D买两个 ①买两个代价相同的(实际不同)(排个序) ②买两个代价不同的(因为买两个代价相同的情况已经考虑过了,所以此时对于同一个代价,只需要保存美丽度最高的喷泉即可)( ...

  8. Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2) C. Fountains 【树状数组维护区间最大值】

    题目传送门:http://codeforces.com/contest/799/problem/C C. Fountains time limit per test 2 seconds memory ...

  9. 树状数组 Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2) C. Fountains

    C. Fountains time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

随机推荐

  1. Maven学习(十)-----使用Maven创建Java项目

    所需要的工具: Maven 3.3.3 Eclipse 4.2 JDK 8 注意:请确保 Maven 是正确安装和配置(在Windows,*nix,Mac OSX系统中),然后再开始本教程,避免 mv ...

  2. 关于scrum敏捷测试

    关于scrum的一些定义 敏捷软件开发方法是一种把新增功能通过较小的循环逐步迭代添加到项目中(的项目管理方法),工作是由自我组织的团队以高效合作的方式拥抱和适应变化来保证客户需求被真正满足的方式来完成 ...

  3. Spring Cloud(一):服务治理技术概览【Finchley 版】

    Spring Cloud(一):服务治理技术概览[Finchley 版]  发表于 2018-04-14 |  更新于 2018-05-07 |  Spring Cloud Netflix 是 Spr ...

  4. idea 临时文件

    idea可以直接创建一个 scratch file (mac os快捷键 cmd+shift+n) 在里面可以自由的编辑文档, 配合vim使用很方便, 我使用的频率还比较高. 大概是这样的. 这个临时 ...

  5. 高可用Kubernetes集群-1. 集群环境

    参考文档: 部署kubernetes集群1:https://github.com/opsnull/follow-me-install-kubernetes-cluster 部署kubernetes集群 ...

  6. Bean的装配

    1.可以从ApplicationContext上下文获取和bean工厂获取容器,bean工厂只建议在移动端应用使用. 2.如果使用的是applicationContext配置的是bean,如果作用域是 ...

  7. 4.airflow测试

    1.测试sqoop任务1.1 测试全量抽取1.1.1.直接执行命令1.1.2.以shell文件方式执行sqoop或hive任务1.2 测试增量抽取2.测试hive任务3.总结 当前生产上的任务主要分为 ...

  8. Python3 匿名函数

    一 匿名函数 lambda函数也叫匿名函数,语法结构如下: lambda x:x+1 x --> 形参 x+1 --> 返回值,相当于return x+1 实例(Python3.0+): ...

  9. High School: Become Human(数学思维)

    Year 2118. Androids are in mass production for decades now, and they do all the work for humans. But ...

  10. 不要USB数据线调试Android开发

    不管是过去Eclipse还是现在的Android Studio开发Android,运行或者调试时都会利用USB数据线连接电脑和手机,特别是当现在的手机只有一个Type-c接口,意味着,插上后,啥也干不 ...