第一题:

题目大意:给出N个人之间转账的手续X%,求出A转给B至少要多少钱才能使B得到100元。结果保留8位小数;N<=2000

解题过程:

1.很容易看出这题的图论模型,每条边的权值就是(1-X%),只要做一次最短路即可。

2.一开始怕中间计算的时候精度的损失(感觉8位小数精度要求比较高),打算保存分子分母,然后约分什么的,不过写起来比较麻烦,调了10分钟没搞出来,然后换成double直接除开,竟然AC了。 积累个经验。

第二题:

题目大意:给出数轴上N个位置,在其中放入M个点(M<=N),使得点与点之间的最小距离 尽可能大。 求最小距离。 N<=100000

解题过程:

1.看到最小的XX最大,或者最大的XX最小,马上想到二分答案,把找答案转化成判断性问题。二分最小距离D,然后根据贪心的原则,从左到右,能放就放(距离不小于D),看能否放入M个点。水题一次排过。。

第三题:

题目大意:给出N个数字(只会是1,2,3),要求用最少的交换次数从小到大排好序。

解题过程:

1.这题颠覆了以前我”交换次数最少的排序就是选择排序“的观点,实际上如果没有相同的元素,那么这个结论是正确的。

下面是一些排序的性质:

1.允许任意两个数字交换

   找循环节。如果不是序列,则先离散化一下得到一个序列,再做以下计算。
   比如 17 12 16 13  14 11 15->7 2 6 3 4 1 5,对应1 2 3 4 5 6 7很明显可以得到7->1->6->3->4->5->7和2->2两个循环节,则答案就是位置7和位置1交换,位置1和位置6……,每次交换可以使一个数字落在自己的正确位置,n次交换可以使n+1个数落在正确位置。那么总的交换次数就是所有的循环节的长度-1的加和,对于7 2 6 3 4 1 5则是(6-1)+(1-1)=5,很容易得到这个值也等于数字个数减去循环节个数。 (我之前的博文中也有提到,NOIP2005篝火晚会的题解)

2.只允许相邻两个数字交换
   即找逆序对的个数,每个数字要落在自己正确的位置就必须和自己后面的逆序的数字做交换。(NOIP2013 有考。)
 
 
回到这题,由于有相同的元素,做法就要改变了。。参考nocow的题解 http://www.nocow.cn/index.php/USACO/sort3
只要统计出当前在数a的位置,却要到数b的位置 的对数,;
用一个组合(a,b)表示应该排序后某个位置应该是a,但之前的是b;然后求这些组合能组成的环,结果就是所有环的长度和减去环的个数;
 

一模 (4) day1的更多相关文章

  1. 二模 (16) day1&day2

    第一题:题目大意: 数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007.  n<=1000000 解题过程: 1.递推式还 ...

  2. 一模 (1) day1

    第一题:(水题) 题目大意:求出n个  X% (X是小于等于2位的整数) 的乘积,去掉末尾的0: 解题过程: 1.直接 把整数乘好,然后确定小数点的位置,去掉多余的0 输出即可. 第二题:(搜索题) ...

  3. 二模 (15)day1

    第一题: 题目大意: 有两个长度为N的序列A和B,在A和B中各任取一个数相加可以得到N2个和,求这N2个和中最小的N个. 解题过程: 1.这题是刘汝佳<<训练指南>>上的一道经 ...

  4. 二模 (13)day1

    第一题: 题目大意: N个发射站排成一排,求每个发射站左右第一个比它高的发射站. N<=1000000 解题过程: 1.前几天做poj的时候刚好在discuss里看到有一个神奇的东东叫单调栈,正 ...

  5. 二模 (12) day1

    第一题: 题目大意: 求由N个1,M个0组成的排列的个数,要求在排列的任意一个前缀中,1的个数不少于0的个数.N,M<=5000. 解题过程: 1.看到N,M的范围就明确肯定不会是dp,因为起码 ...

  6. 二模 (11) day1

    第一题: 题目大意:用邻接矩阵给出一棵树(边权非负)上N个节点相互之间的最短路距离,求这棵树所有边权的和. 解题过程: 1.暂时还没想出来,待AC. 第二题: 题目大意:给出一些单词,然后建立Trie ...

  7. 二模 (9)day1

    第一题: 题目大意: 给出一个n位01串,要么不动它,要么把它删掉一个字符,要么插入一个字符(0或1),要么把一个1变成0,.使得有1的位置号的总和是n+1的倍数,或者是0. 解题过程: 1.直接枚举 ...

  8. 二模 (10)day1

    第一题: 题目描述: 一个阅览室每天都要接待大批读者.阅览室开门时间是0,关门时间是T.每位读者的到达时间都不一样,并且想要阅读的刊物不超过5本.每位读者心里对自己想看的刊物都有一个排位,到达之后他会 ...

  9. 二模 (8) day1

    第一题: 题目大意: 梦幻城市每年为全市高中生兴办一次运动会.为促使各校同学之间的交流,采用特别的分队方式:每一个学校的同学,必须被均匀分散到各队,使得每一队中该校的人数皆相同.为增加比赛的竞争性,希 ...

  10. 二模 (7) day1

    第一题: 题目大意: 给出数轴上N棵树的坐标和高度,如果两棵树之间的距离小于其中一颗树的高度,那么就有树会被挡住.因此要把一些树砍矮一点.求砍树的总高度最小值. N<=100000; 解题过程: ...

随机推荐

  1. Java中List、Collections实现梭哈游戏

    package ch8; import java.util.*; /** * Created by Jiqing on 2016/11/27. */ public class ShowHand { / ...

  2. android学习---- WindowManager 接口 (

    The interface that apps use to talk to the window manager. 这个接口用于与 window manager (窗口管理器, 应用框架层) 进行交 ...

  3. STM32学习笔记(二) 基于STM32-GPIO的流水灯实现

    学会了如何新建一个工程模板,下面就要开始动手实践了.像c/c++中经典的入门代码"hello world"一样,流水灯作为最简单的硬件设备在单片机领域也是入门首推.如果你已经有了一 ...

  4. 如何让JS的变量名变量化

    unction message() { var k=0; // var olk+k="sdasdasd"; eval("var olk"+k+"='a ...

  5. IntelliJ IDEA 学习(六)内存设置

    小伙伴们经常会发现,在开发的时候,经常遇到内存被占满,导致异常卡顿,有时候提示内存溢出,这时可以通过设置xmx来改善.不过切记最好不要超过内存的1/4 打开 IDEA 安装目录,看到有一个 bin 目 ...

  6. CSS重置代码和常用公共代码

    发的发生的发生法士大夫撒打发士大夫

  7. Freemarker 入门示例(zhuan)

    http://cuisuqiang.iteye.com/blog/2031768 ************************************ 初步学习freemarker ,先做一个简单 ...

  8. 解决Tomcat: Can't load IA 32-bit .dll on a AMD 64-bit platform问题

    http://201209235316.iteye.com/blog/2063853 http://www.cnblogs.com/liuyp-ken/p/5503822.html

  9. 例题:计算运费。c#语言基础,比较简单。看代码输入格式和方法。同样方法可以做一个 出租车打车的程序

    while (true) { Console.WriteLine("请输入行李重量"); double k = Convert.ToDouble(Console .ReadLine ...

  10. 使用PowerShell简化我的工作

    欢迎关注我的社交账号: 博客园地址: http://www.cnblogs.com/jiangxinnju/p/4781259.html GitHub地址: https://github.com/ji ...