第一题:

题目大意:给出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. ORACLE 总结

    1. diagnostic file(alertlog, tracefile, redolog), 监控数据库动作时间点 [troubleshooting] alertlog : 确认checkpoi ...

  2. bootstrap学习笔记<三>(文本,代码域,列表)

    文本对齐 .text-left:左对齐 .text-center:居中对齐 .text-right:右对齐 .text-justify:两端对齐 <p class="text-left ...

  3. mysql 求时间段平均值

    考虑下面的需求,在一段时间内,间隔一段时间,取一个平均值,把所有的平均值取出来,怎么办?思路:在存储过程中,拼接sql语句.根据起始时间和结束时间,while循环每次加一段时间.DROP PROCED ...

  4. JavaWeb学习总结(十五)--过滤器的应用

    一.解决全站字符乱码(post和get中文编码问题) 乱码问题: 获取请求参数中的乱码问题: POST请求:request.setCharacterEncoding("utf-8" ...

  5. iOS——MVVM设计模式

    一.典型的iOS构架——MVC 在典型的MVC设置中,Model呈现数据,Vie呈现用户界面,而ViewController调节它两者之间的交互. 虽然View和View Controller是技术上 ...

  6. easyui 进度条

    进度条创建 $.messager.progress({ title:'请稍后', msg:'正在努力...' }); 进度条关闭 $.messager.progress('close'); 弹窗对话框 ...

  7. 转!论if else与switch的效率高低问题

    转 下面来详细描述switch与ifelse的区别. switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转 ...

  8. LTIB常用命令2

    LTIB 编译配置选项 根据说明文档,ltib 可以通过以下的命令配置: * <verbatim># ./ltib</verbatim>          安装后第一次运行,采 ...

  9. opencl gauss filter优化(二)

    1.buffer使用image的方式:Horizontal 与 Vertical 算法一样, 共需30ms,wait time 19ms. const sampler_t sampler = CLK_ ...

  10. 笔记9:winfrom的一些知识点(二)

    一.新建,和删除文件夹 private void button4_Click(object sender, EventArgs e) { Directory.Delete(@"F:\&quo ...