Problem 计算袋鼠是愉快的 题目大意 有n只袋鼠,如果一个袋鼠体积是另一个袋鼠的两倍或以上,则小袋鼠能被大袋鼠装进袋子里,装进去后就看不到袋子里的袋鼠了,问这群袋鼠如何行动才能使得它们看着数量最少,请输出该数量.(注意,如果一个小袋鼠被装在袋子里,则小袋鼠袋子里不能再嵌套袋鼠了) 也就是给出一个数组,求这个数组中最多的u,v使得u>=2v,每个数组中的数只能作为一次u,v (具体还是直接看题吧) Solution 首先我们考虑最优情况,一定有:最小ans≥n/2,这是题目限制条件可得的.…
Description There are n kangaroos with pockets. Each kangaroo has a size (integer number). A kangaroo can go into another kangaroo's pocket if and only if the size of kangaroo who hold the kangaroo is at least twice as large as the size of kangaroo w…
http://codeforces.com/contest/373/problem/C 贪心,先排序,然后从n/2位置倒着找每一个可不可以放到别的袋鼠内. #include <cstdio> #include <cstring> #include <algorithm> #define maxn 5000001 using namespace std; int a[maxn]; bool vis[maxn]; int n; int main() { while(scan…
[链接] 我是链接,点我呀:) [题意] 如果a[i]*2<=a[j]那么i袋鼠可以装进j袋鼠里面 每只袋鼠都只能装一只袋鼠 [题解] 假设最后的方案是(ai,bi) 这里(ai,bi)表示下标为ai的袋鼠可以装进下标为bi的袋鼠里面 (这里袋鼠已经按照大小从小到大排序了) 则我们会发现,如果有(a1,b1),(a2,b2)...(ak,bk)这些方案的话(且这些方案合法) 我们总能让这个方案变成 a1~ak=1,2,3...k b1~bk=n-k+1,n-k+2,n-k+3...n 因为对于每…
题意,有n只袋鼠,没每只袋鼠有个袋子,大小为si,一个袋鼠可以进入另外一个袋鼠的袋子里面,当且仅当另一个袋鼠的袋子是他的二倍或二倍一上,然后中国袋鼠就是不可见的,不能出现多个袋鼠嵌套的情况.让你求最少可见袋鼠的数量. 解题方法是先排序再贪心,贪心策略是从中间开始贪心. #include <stdio.h> #include <algorithm> const int maxn = 500005; using namespace std; int s[maxn]; int n; in…
#include<stdio.h> #include<algorithm> using namespace std; ]; int main() { int i,n,high; while(scanf("%d",&n)!=EOF) { ;i<n;i++) scanf("%d",&a[i]); sort(a,a+n); int ans=n; high=n-; -;i>=;i--)//i=n/2-1容易出错 { <…
题目链接:http://codeforces.com/problemset/problem/372/A 二分思想 AC代码: #include <cstdio> #include <algorithm> using namespace std; int arr[500005]; int main() { int n; while(scanf("%d",&n) != EOF) { for(int i = 0;i < n;i++) { scanf(&q…
最近开始了全面的JAVA生态环境学习,因此,JVM的学习是必不可少的一个环节.和.NET的CLR一样,一起的JAVA应用均跑在JVM虚拟机上,不过相对我们只能干看看的CLR,JVM有很大的灵活性,可以通过配置优化JVM的性能,同时针对JVM相关的监控软件也非常丰富.这部分知识有一些晦涩,为了成为一名合格的JAVA程序员,再硬的骨头也要啃下来,由于自身对这部分没有特别多的心得,将借鉴参考资料中标注的文章进行学习. 首先通过数据类型来引入一个高级语言的核心概念,堆和栈.JAVA的基本类型包括:byt…
Anatomy of a Program in Memory 在一个多任务OS中,每个进程都运行在它自己的内存沙箱中.这个沙箱就是虚拟地址空间,在32位下就是一块容量为4GB的内存地址.内核将这些虚拟地址按页表(page table)映射为物理内存,并交由CPU访问.每个进程有自己的页表集,但有一点要注意.虚拟地址一旦被启用,就会应用到机器上所有运行的程序上,也包括内核自己.因此虚拟地址空间必须为内核预留一部分(否则就没办法和内核交互了): 给内核预留那么多空间,并不是说内核真的使用了那么多物理…
最近开始了全面的JAVA生态环境学习,因此,JVM的学习是必不可少的一个环节.和.NET的CLR一样,一起的JAVA应用均跑在JVM虚拟机上,不过相对我们只能干看看的CLR,JVM有很大的灵活性,可以通过配置优化JVM的性能,同时针对JVM相关的监控软件也非常丰富.这部分知识有一些晦涩,为了成为一名合格的JAVA程序员,再硬的骨头也要啃下来,由于自身对这部分没有特别多的心得,将借鉴参考资料中标注的文章进行学习. 首先通过数据类型来引入一个高级语言的核心概念,堆和栈.JAVA的基本类型包括:byt…
一篇文章就搞懂啦,这个必须收藏! 我们以图片分类来举例,当然换成文本.语音等也是一样的. Positive 正样本.比如你要识别一组图片是不是猫,那么你预测某张图片是猫,这张图片就被预测成了正样本. Negative 负样本.比如你要识别一组图片是不是猫,那么你预测某张图片不是猫,这张图片就被预测成了负样本. TP 一组预测为正样本的图片中,真的是正样本的图片数. TN: 一组预测为负样本的图片中,真的是负样本的图片数. FP: 一组预测为正样本的图片中,其实是负样本的图片数.又称"误检&quo…
Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找.过滤和映射数据等操作.使用Stream API对集合进行操作,就类似与使用SQL执行的数据库操作.也可以使用Stream API来并行执行操作.简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式. 什么是Stream 是数据渠道,用于操作数据源(集合.数组等)所生成的元素序列 集合讲的是数据,流讲的是计算 PS: Stream自己不会存储元素 Stream不会改变源对…
每日一题 day8 打卡 Analysis 背包+离散化 这题是我们一次模拟赛的T2,结果我的暴力全TLE了. 关键是如果将两个因数的乘积离散化在因数数组中之后等于这个乘积本身,说明a[j]*in离散化之后的下表可以通过+=ans[j]来计算 然后就可以愉快地dp啦~~~ #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define maxn 1000+10…
本文介绍了布隆过滤器的概念及变体,这种描述非常适合代码模拟实现.重点在于标准布隆过滤器和计算布隆过滤器,其他的大都在此基础上优化.文末附上了标准布隆过滤器和计算布隆过滤器的代码实现(Java版和Python版) 本文内容皆来自 <Foundations of Computers Systems Research>一书,自己翻译的,转载请注明出处,不准确的部分请告知,欢迎讨论. 布隆过滤器是什么? 布隆过滤器是一个高效的数据结构,用于集合成员查询,具有非常低的空间复杂度.     标准布隆过滤器…
不小心有咕掉了一段时间 这次考试咕掉的分数也是太多了 然后就是这次暴力完全没有打满 遗憾啊遗憾 T1 入阵曲 前面的题目背景故意引导我们去往矩阵快速幂的方向去想 然而半毛钱关系没有 其实就是维护前缀和 二维的 然后就有显然的 \(\mathcal O(n^4)\) 的暴力. 然而我这个 \(sb\) 在考试之前认为没有开 \(long\;long\) 的必要,然后就把 \(long \;long\) 给关了. \(60\;->\;50\) 心态炸裂 \(\huge_{\text{以后我要是在打暴…
楼教主回忆录: 利用假期空闲之时,将这几年 GCJ , ACM , TopCoder 参加的一些重要比赛作个回顾.首先是 GCJ2006 的回忆. Google Code Jam 2006 一波三折: Google Code Jam 2006 是我第一次到美国参加现场的程序设计比赛. Google Code Jam 2006 的比赛地点设在了纽约,这次纽约之行之前的签证出了不小的问题,这里非常感谢大家对我们的关心,特别感谢吴总( wyy )和鲁小石的帮助,使我最终踏上纽约之旅. 从北京到纽约的飞…
http://www.52cs.org/?p=429 作者:陈天奇,毕业于上海交通大学ACM班,现就读于华盛顿大学,从事大规模机器学习研究. 注解:truth4sex  编者按:本文是对开源xgboost库理论层面的介绍,在陈天奇原文<梯度提升法和Boosted Tree>的基础上,做了如下注解:1)章节划分:2)注解和参考链接(以蓝色和红色字体标注).备注:图片可点击查看清晰版. 1. 前言应 @龙星镖局  兄邀请写这篇文章.作为一个非常有效的机器学习方法,Boosted Tree是数据挖掘…
Boosting方法实际上是采用加法模型与前向分布算法.在上一篇提到的Adaboost算法也可以用加法模型和前向分布算法来表示.以决策树为基学习器的提升方法称为提升树(Boosting Tree).对分类问题决策树是CART分类树,对回归问题决策树是CART回归树. 1.前向分布算法 引入加法模型 在给定了训练数据和损失函数$L(y, f(x))$ 的条件下,可以通过损失函数最小化来学习加法模型 然而对于这个问题是个很复杂的优化问题,而且要训练的参数非常的多,前向分布算法的提出就是为了解决模型的…
论文网址: https://arxiv.org/abs/1311.2524 RCNN利用深度学习进行目标检测. 摘要 可以将ImageNet上的进全图像分类而训练好的大型卷积神经网络用到PASCAL的目标检测中? 答案是肯定的,并且结果是简单的,可扩展的,相对于可变部件模型(DPM)将平均精度提高了40%以上(在VOC 2007年达到最终的mAP为48%).我们的网络框架结合强大的产生自下而上的候选区域的计算机视觉技术和在学习高容量卷积神经网络中的最新进展.我们称之为R-CNN:具有CNN特征的…
一 .机器学习算法中GBDT和XGBOOST的区别有哪些?(转自知乎https://www.zhihu.com/question/41354392/answer/98658997) xgboost相比传统gbdt有何不同?xgboost为什么快?xgboost如何支持并行? 传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题). 传统GBDT在优化时只用到一阶导数信息,xgboost…
开始刷leetcode算法题 今天做的是“买卖股票的最佳时机” 题目要求 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票). 看到这个题目 最初的想法是蛮力法 通过两层循环 不断计算不同天之间的利润及利润和 下面上代码 class Solution(object): def maxProfit(self, prices):…
原文:http://www.52cs.org/?p=429 作者:陈天奇,毕业于上海交通大学ACM班,现就读于华盛顿大学,从事大规模机器学习研究. 注解:truth4sex  编者按:本文是对开源xgboost库理论层面的介绍,在陈天奇原文<梯度提升法和Boosted Tree>的基础上,做了如下注解:1)章节划分:2)注解和参考链接(以蓝色和红色字体标注).备注:图片可点击查看清晰版. 1. 前言应 @龙星镖局  兄邀请写这篇文章.作为一个非常有效的机器学习方法,Boosted Tree是数…
XGBoost 与 Boosted Tree http://www.52cs.org/?p=429 作者:陈天奇,毕业于上海交通大学ACM班,现就读于华盛顿大学,从事大规模机器学习研究. 注解:truth4sex  编者按:本文是对开源xgboost库理论层面的介绍,在陈天奇原文<梯度提升法和Boosted Tree>的基础上,做了如下注解:1)章节划分:2)注解和参考链接(以蓝色和红色字体标注).备注:图片可点击查看清晰版. 1. 前言应 @龙星镖局  兄邀请写这篇文章.作为一个非常有效的机…
题目链接 Game 题目的意思很简单, 就是要找一棵树权值最大等等前K条链. 在本题中,走的次数等于min(叶子结点个数,k) tree[i].sum意为从i号结点出发走到某个叶子结点能得到的最大总价值. pson[i]表示i号结点若要获得最大价值那么下一步该怎么走. 显然tree[i].sum和pson[i]是从i的各个儿子转移得到的. 那么先做一遍DFS计算出tree[i].sum, 再排序. 然后贪心,从价值最大的那个结点开始选,从大到小. 选的时候,要把他中途经过的结点全部屏蔽(就是说被…
几个易错点 1.数据范围一定要开大,一般多开10个或者5个. 2. 从经常写 int a[n], 然后访问a[n], 这显然会下标越界. 3. 浮点数,无法精确的比较,等于,大于,小于, 都需要使用eps, 这个坑以前不怎么遇到.如果能用int, 就能免除浮点数的精度影响. 4. unsigned int 和int的比较, 尤其是这样:你用有一个vector的size跟负数进行比较,这样显然会出错, 会把负数当做无符号数字进行转化,然后比较,就会出错.这应该算隐式转换的坑吧. 1. https:…
GBDT和xgboost在竞赛和工业界使用都非常频繁,能有效的应用到分类.回归.排序问题,虽然使用起来不难,但是要能完整的理解还是有一点麻烦的.本文尝试一步一步梳理GB.GBDT.xgboost,它们之间有非常紧密的联系,GBDT是以决策树(CART)为基学习器的GB算法,xgboost扩展和改进了GDBT,xgboost算法更快,准确率也相对高一些. 1. Gradient boosting(GB) 机器学习中的学习算法的目标是为了优化或者说最小化loss Function, Gradient…
Description “Let the bass kick!O-oooooooooo AAAAE-A-A-I-A-U- JO-oooooooooooo AAE-O-A-A-U-U-A- E-eee-ee-eee AAAAE-A-E-I-E-A- JO-ooo-oo-oo-oo EEEEO-A-AAA-AAAA!” LiMn2O4沉迷音乐游戏,每天都在摸鱼搓音游,而且是手机电脑两开花……为了帮助LiMn2O4尽快清醒过来,LiMn2O4答应skyer_hxx,只要skyer_hxx能写一个自动脚…
题目传送门 题目描述 “这一切都是命运石之门的选择.”试图研制时间机器的机关SERN截获了中二科学家伦太郎发往过去的一条短 信,并由此得知了伦太郎制作出了电话微波炉(仮).为了掌握时间机器的技术,SERN总部必须尽快将这个消息通过地下秘密通讯 网络,传达到所有分部.SERN共有N个部门(总部编号为0),通讯网络有M条单向通讯线路,每条线 路有一个固定的通讯花费$C_i$.为了保密,消息的传递只能按照固定的方式进行:从一个已知消息的部门向 另一个与它有线路的部门传递(可能存在多条通信线路).我们定…
题意:给定平面上n(n<=105)个点和一个值D,要求在x轴上选出尽量少的点,使得对于给定的每个点,都有一个选出的点离它的欧几里德距离不超过D. 分析: 1.根据D可以算出每个点在x轴上的可选区域,计算出区域的左右端点. 2.贪心选点,每次都选这个区域的最右端点,这样此端点可存在于尽可能多的区域. #pragma comment(linker, "/STACK:102400000, 102400000") #include<cstdio> #include<cs…
题目传送门 题目大意:给出n个点,m条无向边,让你计算这幅母图中有几个大小为s的完全图. 完全图的意思是任意一个点都和其他点直接相连,完全图的大小指的就是完全图点的个数. 思路:比较巧妙的构图方式.我们会很自然地想到用dfs来找环,然后记录路径,判断是否成完全图,但是由于题目给的是双向边,如果直接构图的话,就会导致出现很多没有必要的情况,重复计算,爆栈超时. 所以在建图的时候只建从小的点到大的点的单向边,然后对n个点从小到大进行dfs,这样可以既可以保证不会有遗留的情况,也不会重复计算(因为每次…