http://acm.hdu.edu.cn/showproblem.php?pid=6581 一开始想了好几个假算法.但是启发了一下潘哥,假如时间知道的话就可以从头开始确定各个车的位置.那么直接 \(O(log_2\frac{10^9}{10^{-6}})\) 二分时间 \(t\) ,然后 \(O(n)\) 验证. #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 100000…
Distinct Values Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2298    Accepted Submission(s): 740 Problem Description Chiaki has an array of n positive integers. You are told some facts about…
2018 Multi-University Training Contest 2 6312.Game 博弈,直接官方题解,懒了. 考虑将游戏变成初始时只有2~n,如果先手必胜的话,那么先手第一步按这样取就获胜了:如果后手必胜的话,那 么先手第一步取走1就获胜了.所以全输出Yes就行了. 代码: //1004-6312-博弈-真签到题 #include<iostream> #include<cstdio> #include<cstring> #include<alg…
题意:有n俩车行驶在一条道路上,每辆车有车长li,距离终点的距离si,速度vi,不能超出,并且驶过终点后会依旧保持原状态行驶,问最后一辆车过终点的时间. 思路:因为行驶过终点后还是要保持之前的行驶方式 所以我们可以考虑枚举经过终点是哪一辆车 那么时间就只和这辆车的速度有关 那么我们就在其间找最大值 对于当前车经过终点但是却没有连成一块的情况 大家可以模拟一下 这种情况一定不是最优的 #include <bits/stdc++.h> using namespace std; const doub…
Delicious Apples Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5303 Mean: 一条长为L的环形路上种着n棵苹果数. 第i棵苹果数的位置在xi,有ai个苹果,苹果树的位置按顺时针顺序给出,且都是整数. 在0位置有一个仓库,有一个容量为k的篮子,需要使用这个篮子将所有苹果收到仓库中来,求全过程的最短路. analyse: 首先来分析: 跑整圈的情况只可能出现一次.因为根据贪心的思想,摘完一个单边上最后那颗苹…
http://acm.hdu.edu.cn/showproblem.php?pid=6365 细节处理 unique返回的是最后一位的后一位,因此从1开始的数组要减去(p+1) 结构体可以用unqiue和lower_bound,因此结构体也可以离散化 此处的斜率是x/y,因为这样定义斜率会随着x的增大而增大 思路 一开始见到这道题,因为是个计算几何题,但是转换的思路十分巧妙: 首先如何处理一条线段,假设我们穿过所有点的两个端点,一定可以穿过所有线段,所以每条线段转化为两个点 那么如何处理每个点(…
6335.Problem D. Nothing is Impossible 题意:给你n道题目,m个人,每题有x个正确选项,y个错误选项,问你做对题数量最多的人做对了多少道题目. 如果一道题有y个错误选项,那么我需要至少y+1个人才能保证一定有一个人做对了这道题目,所以题面上给的正确选项的数量x并没有什么实质性的作用... 假设第一题错误选项有y1个,第二题错误选项有y2个,那么怎么才能保证至少有一个人两道题目都做对了呢? 首先我需要至少y1+1个人才能保证一定有一个人做对了第一题,那么,我在做…
6322.Problem D. Euler Function 题意就是找欧拉函数为合数的第n个数是什么. 欧拉函数从1到50打个表,发现规律,然后勇敢的水一下就过了. 官方题解: 代码: //1004-欧拉函数水题 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; typede…
HDU6301.Distinct Values 这个题就是给你区间要求区间内的数都不相同,然后要求是字典序最小,直接贪心走一遍,但是自己写的时候,思路没有错,初始化写挫了... 将区间按左端点小的排序,如果相同就按右端点大的排序,因为右端点大的肯定满足右端点小的.然后直接标记数组记录当前区间已有的数,然后将没有的数字填到里面.注意初始化就可以了. 代码: //1004-6301-字典序最小的序列,贪心策略,标记当前段出现过的 #include<iostream> #include<cst…
pid=5303">题目链接 题意:长度为l 的环,有n棵果树,背包容量为k,告诉你k棵苹果树的id.以及每棵树上结的果子数.背包一旦装满要返回起点(id==0) 清空,问你至少走多少路,能摘全然部的苹果. 思路: 由于是环形,所以事实上离起点最远的点应该是l / 2. 两种摘苹果的方式.一种从上半圈開始走.用dp[0][i]记录: 第二种.从下半圈開始走.用dp[1][i]记录: allv 记录苹果总数,那么仅仅要找出最小的 dp[0][i] + dp[1][all-i]就好啦. 代码例…