第一题:

题目大意:

有mn颗糖,要装进k个盒子里,使得既可以平均分给n个人,也可以平均分给m个人。 求k的最小值。

解题过程:

1.先看一组小数据(13,21).那么根据贪心的原则很容易想到先拿13个盒子,每个盒子装13颗糖,这样当要分给13个人的时候,每个人还欠8颗糖,当要分给21个人的时候,还有8个人欠13颗糖.所以问题就变成了把8*13颗糖放到盒子里,要求既可以平均分给8个人,也可以平均分给13个人。 也就是说可以不断减小问题的规模:

(13,21)->(8,13)->(5,8)->(3,5)->(2,3)->(1,2)->(1,1)

2.观察上面的过程,和辗转相减求最大公约数的过程一模一样。但是仅仅是相减效率就不高了,所以可以变成辗转相除。对于数据(x,y) 每个盒子最多只能装min(x,y)颗,所以这样的装法一定是最优的。

3.题解里说最小盒子数量k=n + m - gcd(n,m)。

证明:考虑一个n 个黑点、m 个白点的二分图,第i 个黑点表示第i 个小朋友(总人数为n 时),第j 个白点表示第j 个小朋友(总人数为m 时);一条边(i,j) 表示这样一个盒子,这个盒子在人数为n 时属于第i 个小朋友,在人数为m 时属于第j 个小朋友。考虑这个图的某一连通分量,它包含x 个黑点,y 个白点,则此连通分量中的边所代表的盒子的糖果总数= xm = yn,于是x n/ gcd(n,m),即每个连通分量至少包含n/ gcd(n,m)个黑点,于是连通分量数量不超过gcd(n,m),所以边数至少为n + m - gcd(n,m).

初始得分100.


第二题:

题目大意:

在N个点M条边的无向图中,给出q个询问(A,B,P),求从A到B mod P 意义下的最短路的长度。

N,M,q<=50000.

解题过程:

1.这题真心神题,一点思路都没有,直接告诉我这绝对不是图论题而是数学题。直接暴力打了个spfa,拿到了35分。

2.直接贴官方题解吧,暂时还没看明白:


第三题:

题目大意:

给出一个长度为N的字符串,有q个询问(L,R),求区间[L,R]中有多少个子序列“gcd”。

N,q<=80000

解题过程:

1.70分是很好拿的(N,q<=4000),只要在区间里找出所有的c,然后就可以利用前缀和搞出它前面的g和后面的d的个数,根据乘法原理统计即可。  找出区间里所有的c,我加了个二分查找的优化,对于完全随机的数据(c的个数比较少)效率比较理想,但还是只能拿到70分。

2.莫队算法:先分块,然后把所有询问排序(左端点在同一个块里的按右端点排序,不在同一个块里的按左端点排序).根据询问区间的变化来维护g,c,d,gc,cd,gcd的个数。  效果比较理想,最慢的点只要500ms左右。

3.O(N+q)的神算法:先处理处g,c,d,gc,cd,gcd的前缀。

[L,R]里的gcd个数=[1,R]的gcd的个数-[1,L-1]里gcd的个数-[1,L-1]里g的个数*[L,R]里cd的个数-[1,L-1]里gc的个数*

[L,R]里d的个数。

而[L,R]里cd的个数又等于[1,R]里cd的个数-[1,L-1]里c的个数*[L,R]里d的个数-[1,L-1]里cd的个数。

所有的东东都可以用前缀和来得到。 最慢的点只要50ms.


总结:

1.不要被题目吓住了,从小的数据入手容易发现规律,比如T1。

2.做不出来的题目不要死磕,比如T2,早点写个暴力丢一边就行,应该把时间花在其它题目上。

省常中模拟 day2的更多相关文章

  1. 省常中模拟 Test2 Day2

    two 模拟 大意:给你一个 N 位二进制数,有四种操作:加1.减1.乘2.整除2.给定一个操作序列,求最终结果.N <= 5*10^6.数据保证不会在最高位上进行进位或退位操作. 初步解法:由 ...

  2. 省常中模拟 Test3 Day2

    matrix 找规律 题意:给定一个 N*N 的只有 0 和 1 的矩阵,有 Q 个操作,分三种:1. 将某行上的所有数字取反:2. 将某列上的所有数字取反:3. 输出 sum{ a[i][j]*a[ ...

  3. 省常中模拟 day1

    第一题: 题目大意: 给出N个数的数列,如果相邻的两个数加起来是偶数,那么就可以把这两个数消掉,求最多能消掉多少数. 解题过程: 1.先自己手工模拟了几组数据,发现不管消除的顺序如何,最终剩下的是一定 ...

  4. 省常中模拟 Test4

    prime 数论 题意:分别求 1*n.2*n.3*n.... n*n 关于模 p 的逆元.p 是质数,n < p. 初步解法:暴力枚举.因为 a 关于模 p 的逆元 b 满足 ab mod p ...

  5. 省常中模拟 Test3 Day1

    tile 贪心 题意:给出一个矩形,用不同字母代表的正方形填充,要求相邻的方块字母不能相同,求字典序(将所有行拼接起来)最小的方案. 初步解法:一开始没怎么想,以为策略是每次填充一个尽量大的正方形.但 ...

  6. 省常中模拟 Test1 Day1

    临洮巨人 排序 题意:在字符串中找出 A.B.C 三个字母出现次数相同的区间个数. 初步的解法是前缀和,用 a(i), b(i), c(i) 表示在位置 i 之前(包括 i)各有 字母 A.B.C 多 ...

  7. 如何在C#中模拟C++的联合(Union)?[C#, C++] How To Simulate C++ Union In C#?

    1 什么是联合? 联合(Union)是一种特殊的类,一个联合中的数据成员在内存中的存储是互相重叠的.每个数据成员都在相同的内存地址开始.分配给联合的存储区数量是“要包含它最大的数据成员”所需的内存数. ...

  8. Python中模拟enum枚举类型的5种方法分享

    这篇文章主要介绍了Python中模拟enum枚举类型的5种方法分享,本文直接给出实现代码,需要的朋友可以参考下   以下几种方法来模拟enum:(感觉方法一简单实用) 复制代码代码如下: # way1 ...

  9. 在C#中模拟Javascript的setTimeout方法

    在C#中模拟Javascript的setTimeout方法 背景 每种语言都有自己的定时器(Timer),很多人熟悉Javascript中的setInterval和setTimeout,在Javasc ...

随机推荐

  1. Hdu 1443 Joseph

    Joseph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  2. sql 中实现往表中插入一条记录并返回当前记录的ID

    写一条存储过程,实现往User中插入一条记录并返回当前UserId(自增长id) --推荐写法 if(Exists(select * from sys.objects where name=N'Usp ...

  3. vs2010下编译osip2和eXosip2的4.0.0版的静态库及搭建开发环境

    转载于:http://blog.csdn.net/lbc2100/article/details/48293911 本文为参考网上的动态库的方式,进行静态库的实现,在此对动态库的作者表示感谢. 第一步 ...

  4. EventBus使用详解(二)——EventBus使用进阶

    一.概述 前一篇给大家装简单演示了EventBus的onEventMainThread()函数的接收,其实EventBus还有另外有个不同的函数,他们分别是: 1.onEvent2.onEventMa ...

  5. GMF:如何在不打开Editor的情况下生成图片

    问题 GMF应用中,有时我们希望在不打开*DiagramEditor的情况下,从文件就能生成它的图片   解决方案 首先,从文件中构造DiagramImpl实例: TransactionalEditi ...

  6. <转>linux crontab 定时任务

    基本格式 : * * * * * command 分 时  日  月  周    命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 ...

  7. Django ModelForm and Form

    django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm 关于django的表单系统,主要分两种 基于django.forms.Form 基于dj ...

  8. [Python正则表达式] 字符串中xml标签的匹配

    现在有一个需求,比如给定如下数据: 0-0-0 0:0:0 #### the 68th annual golden globe awards #### the king s speech earns ...

  9. DSO转换规则的Aggregation默认为覆盖MOV

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  10. Bilinear Filter

    参考资料: 1. 维基百科Biliner Filtering 2. 维基百科Texture Filtering 3.维基百科Bilinear Interpolation 4. 维基百科Bilinear ...