弱没机会去长春,但拿了题来做了,加上请教各路大牛,理论AC了一发,但没实现~(感谢各路有形无形的大牛的指导)

A题~Too Rich

给你1,5,10,20,50,100,200,500,1000,2000这几个数的个数,用最多的数组成和为p。

解:一眼看上去像个贪心题,其实,如果没有20,50,200,500这样怪的数,确实只是一个
简单的贪心题。转换一下题目,求p用最多的数组成,设S是所有数的和,即要求s-p用最少的
数组成。对于60,如果贪心的话,对20,20,20,50而言,很明显会造成无解,那么,怎么
办呢?题目的关键在于20,50,200,500这样的数的转化。
我们发现,如果50,500或者20,200不存在了,这个题也是一个贪心题,那么,是否可以把
它们其中一个消去呢?
假设把50,500消去,即变成50*2=100,500*2=1000,那么,可选的数中就不再存在
50,500了。
注意一种情况是~假设题目中可能会存在一种情况是,至少选了一个50或500后会使得情况更
优,那么,我们枚举这4种情况,分别是00,01,10,11 。于是,题目按照一般贪心可解。

  

B题~Count a * b

定义f(m)为a×bmodm≠0的(a,b)对数,其中0≤a<m,0≤b<m。T(T≤20000)次询问∑d∣nf(d)mod264,1≤n≤109。

解:一种很自然的想法是必须先求解f(m),那么f(m)=m^2-(a,b)中使a*b mod m=0的对
数。定义(a,b)中使a*b mod m=0的对数为h(m)。分析一下,怎么样才能使得
a*b mod m=0呢?设a=ix,b=jy,如果i*j=m的话,那么a*b%m=0,而且gcd(x,j)=1,这是为了避免产生重复计数,有phi(j)。
h(m)=sigma( d*phi(d) )。
发现h(m)其实是一个积性函数,h(pq)=h(p)h(q),
f(m)=m*m-h(m),那么,我们计算所有的m*m的和减去所有h(m)的和即可,那么,怎么才能快速计算所有m*m的和呢?
枚举m乘积所有的素数,可能根据以下式子
(p1^0*2+p1^1*2+p1^2*2+p1*3*2....)*(p2^0*2+p2^1*2+p2^2*2.....)*(.....),
由于h(m)是积性函数,同理可有上面的式子。

  

E题~Rebuild

解:这道题只要确定第一个圆的半径,就可以确定其他圆的半径了。需要分奇偶情况讨论吧,据现场的人说有坑,但弱没机会提交~~

  

F~Almost Sorted Array

解:这道题应该不难,因为只允许去掉其中一个数,我的方法是分两种情况,一种是升序,一种降序,如升序,求它的最长不降子序列>=n-1即可,比较的时候因为只去掉一个数,只需和前两个数比较应该就可以了。

  

G~Dancing Stars on Me

解:一开始也是往凸包想,但后来请教别人才知道,原来可能组成正n边形的只能是n=4的时候,因为坐标都是整数,只能有这一种情况。

  

H~partial tree

这题不懂。看一大牛的博客是用到prufer序列。
http://kuribohg.github.io/2015/10/20/changchun-2015-solution/ 由Prufer序列可以知道任何一个长度为n−2的序列,其中每个数都不大于n,都可以代表一个合法的树。
考虑一个Prufer序列,可以把它排序,每次在后面添加一个数。
考虑正在添加第i个数,添加的数可以跟前一个数相同,这种情况下假如前面已经有k个数与这个新加的数相同,权值增加f(k+2)−f(k+1)。
否则可以自己新开一段,这种情况权值最大值就是前i−1个形成的权值最大值再加上f(2)−f(1)。
那么就可以DP了,dpi,j表示i个数,序列最后有j个数是相同的,初值dp0,0=n×f(1),转移方程通过上面的分析很容易得到。 以上是这位大牛的想法。因为prufer序列最后是n-2个点,所以会剩下一条边。所以,假如前面已经有k个数与这个新加的数相同,权值增加f(k+2)−f(k+1),我开始时以为是f(k+1)-f(k)

  

J~ Chip Factory

首先si不大,因为涉及到异或的操作,这时,我们可以把所有的si都看成是32位的二进制数。

这样,可以根所二进制数建立一棵trie树。

我们枚举si,sj,把它别从trie树中删除,之后再在trie中枚举sk,这时,求出si+sj,枚举当前位,如果是0,则应当往trie中是1的一方走,如果1不存再往0的走。如果当前位是1同样处理。再把si,sj插入回到trie树中。

这样求出最大值。

  

2015 Changchun Regional的更多相关文章

  1. zoj 3659 Conquer a New Region The 2012 ACM-ICPC Asia Changchun Regional Contest

    Conquer a New Region Time Limit: 5 Seconds      Memory Limit: 32768 KB The wheel of the history roll ...

  2. ACM-ICPC 2015 ChangChun

    比赛链接 :点击这里 大概会写 F G J L 吧 F 给你一个序列 最多删除一个数使他构成 最长不上升或者不下降子序列 这题不会不会on的算法只能 t*n*logn 了 还是压常过 求两次 LIS ...

  3. HDU 5437 & ICPC 2015 Changchun Alisha's Party(优先队列)

    Alisha’s Party Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  4. ACM-ICPC 2015 Changchun Preliminary Contest J. Unknown Treasure (卢卡斯定理+中国剩余定理)

    题目链接:https://nanti.jisuanke.com/t/A1842 题目大意:给定整数n,m,k,其中1≤m≤n≤1018,k≤10, 然后给出k个素数,保证M=p[1]*p[2]……*p ...

  5. HDU 4421 Bit Magic (图论-2SAT)

    Bit Magic Problem Description Yesterday, my teacher taught me about bit operators: and (&), or ( ...

  6. HDU 4422 The Little Girl who Picks Mushrooms ( 模拟)

    Problem Description It's yet another festival season in Gensokyo. Little girl Alice planned to pick ...

  7. hdu 4424 & zoj 3659 Conquer a New Region (并查集 + 贪心)

    Conquer a New Region Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...

  8. hdu4430 枚举+二分

    Yukari's Birthday Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  9. HDOJ 4424 Conquer a New Region

    并检查集合 侧降序,每增加一个侧面应该推断,其中基本建设方..... Conquer a New Region Time Limit: 8000/4000 MS (Java/Others)    Me ...

随机推荐

  1. C#中Random

    说明:C#中的随机数是一个伪随机数,随机数字从一组有限的数字选择以相同的概率,所选的数字不是完全随机的,因为使用数学算法来选择它们.在大多数Windows系统中,Random的15毫秒内创建的对象很可 ...

  2. python自动化测试学习笔记-4内置函数,处理json

    函数.全局变量 写代码时注意的几点事项: 1.一般写代码的时候尽量少用或不用全局变量,首先全局变量不安全,大家协作的情况下,代码公用容易被篡改,其次全局变量会一直占用系统内容. 2.函数里如果有多个r ...

  3. ashx 文件的使用

    它就类似.aspx文件,用于处理传入到服务器的HTTP请求,但它不会像.aspx文件那样要返回处理结果和大量HTML,它可以返回简单的字符串.图片等. 百度百科定义链接:http://baike.ba ...

  4. PHP富文本编辑器 之Kindeditor的使用 一

    一.下载编辑器源码 KindEditor 4.1.10 (2013-11-23) [1143KB] 下载页面: http://kindeditor.net/down.php 二.部署编辑器 将下载文件 ...

  5. ACM_“打老虎”的背后(简单并查集)

    “打老虎”的背后 Time Limit: 2000/1000ms (Java/Others) Problem Description: “习大大”自担任国家主席以来大力反腐倡廉,各地打击贪腐力度也逐步 ...

  6. CSS——font

    行高的量取方式: 1.第一行可设置margin-top值.然后将第一文字顶部到第二行文字顶部的值作为行高的值(要注意对齐方式) 2.将 3.电视上 font:12px/1.5//字体12px,行高1. ...

  7. java 向上,向下转型

    在对Java学习的过程中,对于转型这种操作比较迷茫,特总结出了此文.例子参考了<Java编程思想>. 目录 几个同义词 向上转型与向下转型 例一:向上转型,调用指定的父类方法 例二:向上转 ...

  8. Codeforces_733C

    C. Epidemic in Monstropolis time limit per test 1 second memory limit per test 256 megabytes input s ...

  9. 微信小程序video

    1.video是原生组件原生组件的层级是最高的,想要覆盖在video上,只能用cover-view 和 cover-image 组件,这2个可以无限嵌套.适用场景:给视频加标题: 2.检测video播 ...

  10. BZOJ 2626: JZPFAR KDtree + 堆

    Code: #include<bits/stdc++.h> #define maxn 200000 #define inf 1000000000000000 #define mid ((l ...