[HDU5902]GCD is Funny(xjb搞)】的更多相关文章

题意:n个数每次选三个数删除,取其中两个数将gcd放回去两次,问最后剩的数可能是多少 分析:考虑最优情况: 先拿出三个数,留下两个x,x  再来一个y,(x,x,y)我们可以删去一个x,留下两个gcd(x,y),这两个gcd(x,y)等价于刚才的两个x,x 也就是每次操作我们都可以有一个额外的数让我们删去,并不断扩充gcd 于是答案就是所有子集的gcd 但第一次我们必定删去一个数,它没法加入gcd操作中,所有n个子集的gcd不能作为最终结果 即答案就是2<=size<n的子集的gcd 可以先跑…
题目链接:hdu_5873_Football Games 题意: 有n个队,每个队都会给其他队打一场,赢一场得2分,平局得一分,输了不得分,然后给你全部比赛结束后的得分,问你是否有假分 题解: 可以知道每打一场分数总和会加2,然后奇数得分的个数是偶数个,0得分的个数最多一个,因为不可能两个队全部都是输,然后就这样xjb水过去了 #include<bits/stdc++.h> #define F(i,a,b) for(int i=a;i<=b;++i) using namespace st…
题目链接:hdu_5927_Auxiliary Set 题意: 给一棵n个节点的树,最开始全部都是重点,现在有q个询问,每次给你一些轻点,并叫你输出整棵树的重点数量, 轻点可能会变为重点,如果这个轻点是两个重点的lca. 题解: 这里 我把有重点的子树叫重子树,一个重点都没有的子树叫轻子树. 一个轻点如果有两个重子树,那么这个轻点就会变为重点,可以画图试试. 然后我们就将轻点从树的最底层开始更新 x为这个点的子树个数,n为这个点的轻子树个数, 如果x-n=0,那么这个点的父亲节点的n就++ 如果…
题目链接:hdu_5813_Elegant Construction 题意: 给你n个点,每个点要可以到达ai个点,可以直接可以间接,不能有环,问是否可行,如果可行就任选一种方式连接,并输出连接的边数和边 题解: 我们按每个点要能到达的点数从小到大排序,然后枚举每个点i,对前面的j(j<i)连一条边,这样保证能到达ai个点,如果第i个点大于等于i,那么肯定没有方案,此时不能向后面的点连边,如果连了就成环了. #include<bits/stdc++.h> using namespace…
题目链接:hdu_5805_NanoApe Loves Sequence 题意: 给你n个数,现在要删一个数,删每个数的概率是一样的,现在问你删一个值后的相邻数绝对值最大差的期望是多少,因为担心精度误差,让你答案乘n 题解: 先算出不删数的绝对值最大的差ma并记录位置,如果要删的数不是刚才求出来的位置,那么ans+=max(abs(a[i-1]-a[i+1],ma).如果是,那么重新求一下最大值就行了,因为最多重求两次,所以总复杂度还是O(n). #include<cstdio> #inclu…
题目链接:hdu_5752_Sqrt Bo 题意: 给你一个数,问你最少要开多少次方才能为1 题解: 我们发现如果给的数大于232 那么肯定在5次以内是开不出来的,所以直接输出TAT,然后小于的就模拟一下,注意1和0的特判就行 #include <cstdio> #include <cstring> #include <cmath> typedef long long ll; << ) - ; ] ="; ]; int len; void fail…
[bzoj2005] [Noi2010]能量采集 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=2005 Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的 能量汇集到一起. 栋栋的植物种得非常整齐,一共有n列,每列有m棵,植物的横竖间距都一…
西安,打铁. 出发前听说是大赛区,签到的时候看了秩序册的队伍情况,264支队伍. 在听说是大赛区之前,我觉得我们队应该是银首,运气好+发挥超常的话或许有金,即保银冲金. 听到大赛区之后,觉得可能金区有难度,毕竟金的数量不根据队伍总数改变.当时觉得应该是银,运气差+发挥失常就是铜首. 万万没想到,打铁. 同行的另外还有三支队伍.大二的两支队伍,一支银一支铜.好像我们学院好久没有打铁了 热身赛,纸质很差,纸张黄黄的,字体模糊的,还很薄.共4题. 先是2题水题CD,我跟JM迅速水完后,WJ说B是冒泡的…
day0 下午到了北京,雾霾还是那么大.. 到宾馆报个到,和哥哥吃了一波饭,去不起西郊...只能去五道口了... 晚上和wyz队长见面,wyz队长好帅啊...没带手机拍照真是个错误TAT day1 今天是开营...大客是很高级啊...见到了YZM菊苣,感觉好神啊... 雾..开营仪式时候听吴文虎教授传授人生经验 HP ++,感觉吴文虎教授好厉害啊,身为学术大师,还是体育健将,怪不得这么长寿 听着吴教授的话,感觉中国人确实很厉害..劲啊 吴教授:少说多做.这句话说得很对蛤.. 后来cxm讲人生经历…
问题 A: 木棒根数 解法:把所有的情况保存下来,加一下就好 #include<bits/stdc++.h> using namespace std; map<char,int>q; class P { public: int cmd(string s) { ; ;i<s.length();i++) { sum+=q[s[i]]; } return sum; } }; int main() { string s; P solve; q[; q[; q[; q[; q[; q[…
C. Drazil and Park 题目连接: http://codeforces.com/contest/516/problem/C Description Drazil is a monkey. He lives in a circular park. There are n trees around the park. The distance between the i-th tree and (i + 1)-st trees is di, the distance between t…
题目链接:Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset 题意: 给你一些操作,往一个集合插入和删除一些数,然后?x让你找出与x异或后的最大值 题解: trie树xjb搞就行,每次要贪心,尽量满足高位为1. #include<bits/stdc++.h> #define F(i,a,b) for(int i=a;i<=b;i++) using namespace std; namespace trie { )*; ],ed=-,c…
#include <iostream> #include <cstring> #include <cstdio> using namespace std; namespace Dp{//状态转移 void shudp()/*"树Dp"*/{ cout<<"树Dp"<<endl;{ cout<<"hzoj:800 1040"<<' '<<"熟练…
Problem bzoj3994 洛谷3327 题意:设 \(d(x)\) 为 \(x\) 的约数个数,给定 \(N,M\),求\(\sum_{i=1}^N\sum_{j=1}^Md(ij)\) \(1\leq N,M,T\leq 5\times 10^4\) Solution 第一次推出莫反式 ♪(^∇^*) 以下部分中小括号代表\(\gcd\),中括号代表取布尔值 一开始想枚举约数然后看有多少倍数出现过的,发现不好弄,转而想到 \(xy\) 的因数一定是 \(x\) 的因数和 \(y\) 的…
题面 \(solution:\) 讲真吧,这道题真的出得,嗯,太恐怖了.考场上这道题真的把我看懵了,这道题以前是见过的,但欧拉函数?我学过吗?一道容斥都要超时的题目,我都要为我自己点根香了,拿着gcd一顿乱搞,果然搞出了个0分.不得不承认博主的数学真的太渣了,但这道题的解题思路真的太妙了(因为渣所以必须学习!). 首先,一个必须要知道的东西,操场是环形的(即 \((mod\) \(n)\) 意义下的).若第\(k\)个格子可以被第\(i\)个同学踩到,那么必定存在一个\(x\) 使\(x*a_i…
暴力出奇迹……原题: 图片题面好评(图片样例差评 我最开始的思路: 容斥,变成每次询问((1,1),(x,y))这个矩阵中颜色为c的个数,然后三维偏序!cdq分治! 但是2e5的询问好像并不大丈夫?乘个4就变成8e5了 然后搜题解……woc原来还可以这么玩…… 因为每次值查询一个值所以直接开100个树状数组xjb搞就行了,复杂度没问题 那么如果把询问减小,然后每次询问的是一个区间的值要怎么做呢嘿嘿嘿 代码: #include<iostream> #include<cstdio> #…
Problem F. Turning Grille 题目连接: http://opentrains.snarknews.info/~ejudge/team.cgi?SID=c75360ed7f2c7022&all_runs=1&action=140 Description 'Turning grille' method is one of the simplest forms of transposition cipher. A variant of this method is as f…
图片加载可能有点慢,请跳过题面先看题解,谢谢 设状态 \(f[i][j]\) 为,当前垃圾序号为 \(i\) ,当前承重为 \(j\) 的最小路程,好的这道题做完了 O(NC) G烂 $ $ 我们这样设: \(f[i]\) 为,从起点出发,将前 \(i\) 个垃圾清完并放进垃圾桶的最小路程 显然有转移:\(f[i]=min(f[j]+H[j+1]+dis[j+1][i]+H[i]),j\le i,sum[j+1][i]<=c\),其中, \(sum[i][j]\) 为第 \(i\) 个垃圾到第…
图片加载可能有点慢,请跳过题面先看题解,谢谢 在切水题的道路上狂奔,一发不可收拾... 这道题好像不用写什么题解吧,吐个槽什么的算了 一眼题,大佬们都不屑于做,只有我这种弱菜才来写这种题目玩儿 记个前缀和,直接二分一个长度, \(XJB\) 搞一下就好了 思考时间: \(1s\) ,代码时间 \(1min\) . //made by Hero_of_Someone #include<iostream> #include<cstdio> #include<cstdlib>…
如标题所言,我已经沉迷于AC自动机无法自拔了... 这又是一道AC自动的题,红红火火恍恍惚惚 穿越广场 [问题描述] L 国的仪仗队要穿越首都广场了.首都广场可以看做是一块 N*M 的矩形网格,仪仗队要从左上角的格点(0,0)行进到右下角的格点(N,M),行进过程中只能向右走或者向下走.如果把向右走记为’R’,把向下走记为’D’,则仪仗队的行进序列是一个包含 M 个’R’和 N 个’D’的字符串. 这时,L 国的首长又提出了一个奇葩的要求.他认为仪仗队行走的序列中必须包含他给出的两个字符串.请你…
link 很容易对于每个点列出式子 \(f_{x,y}=(f_{x,y-1}+f_{x,y}+f_{x,y+1}+f_{x+1,y})/4\)(边角转移类似,略) 这个转移是相互依赖的就gg了 不过你可以把这个转移移项,改成右侧没有\(f_{x,y}\)的式子 不过他还是相互依赖的 但是上下两行之间转移不是依赖的 所以你可以每一行跑一遍高斯消元 由于一行的转移是一条链 树上高斯消元可以做到 \(O(n)\) 或 \(O(n \log p)\)(模意义下逆元) 而链上的情况更简单,直接xjb搞一下…
题目传送门 http://www.lydsy.com/JudgeOnline/problem.php?id=2154 人生中第一道自己做出来的莫比乌斯反演 人生中第一篇用LaTeX写数学公式的博客 大家别看公式多就害怕了啊,这里面的公式大多是很显然的 首先,题目要我们求 $\Large\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}lcm(i,j)$ 这个$lcm$很不好办,我们想办法转化成$gcd$,然后尝试搞莫比乌斯反演的套路 那么因为 $\Large l…
3155: Preprefix sum 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3155 把给出的a_i当成查分数组d_i做就可以了. XJB搞一搞就过了. code: #include <iostream> #include <cstdio> using namespace std; #define int long long const int wx=200017; inline int read(){ int…
题意:商店出售3种颜色的球,分别为红.绿.蓝. 城市里有n个商店,第i个商店在第First_i天开始营业,连续营业Red_i+Green_i+Blue_i天,每个商店每天只能出售一种颜色的球. 每天最多有两个商店同时营业.如果同一天内有两个商店同时营业,那么这两个商店必须出售相同颜色的球. 求不同的出售方案数(对1,000,000,007取模).两种方案不同,当且仅当某一天某一个商店出售的球的颜色不同. 1≤n≤50 1≤First_i≤500 0≤Red_i, Green_i, Blue_i≤…
题意:有最多100天 每天有一个食物量 你一开始有一个最大胃口表示你最开始能吃多少食物 如果你昨天吃了 那么今天的胃口为昨天的2/3 如果你前天吃了 昨天没吃 那么你的胃口可以恢复到前天的情况 如果你有连续两天没吃了 那么你就可以恢复到最大胃口了 问怎样安排使一共吃到的食物最多 题解:就裸裸的DP了,反正从没出过DP(的DP选手 dp[i][j][k]表示第i天结束后 当前的胃口能级为j 这一天进行的操作k k为0表示今天吃了 k为1表示今天没吃 那么转移也没什么难的了  转移模拟这几种状态即可…
传送门:点击打开链接 题意:一个三元组假设满足j=i+1,k=j+1,ai<=aj<=ak,那么就好的.如今告诉你序列.然后Q次询问.每次询问一个区间[l,r],问区间里有多少个三元组满足要求 思路:刚開始看错题目了,原来三元组是连续3个,这作为bc最后一题也太水了把. . . 先一遍预处理.把连续3个满足条件的找出来,放到还有一个数组里排序去重,用这个数组来给三元组哈希.再扫一遍给三元组在之前那个排序好的数组里二分一下得到下标,大概就是哈希一下,用一个数字来表示. 之后的查询.事实上就是.在…
传送门:点击打开链接 题意:有n个箱子排成一排,有m个炸弹.位置告诉你.如今炸弹的左边伤害和右边伤害能够自己控制,要求 每一个炸弹炸的箱子数的累乘,输出答案取log2并乘以1e6 思路:直接2for xjb搞即可了.大概就是某个区间里刚好仅仅有一个炸弹时,就是满足的,然后就从前面往后面更新一下 #include <map> #include <set> #include <cmath> #include <ctime> #include <stack&…
目录 题面 中文题意 比赛惨状 我的走不通的思路 \(m\)是偶数的情况 \(m\)是奇数的情况 题解的思路 另一些思路 源代码 题面 Time limit 3000 ms Memory limit 131072 kB Special judge Yes OS Windows 中文题意 把\(n\)块石头分成\(k\)堆,要求每堆石头的重量之和相等.输出是否可以实现要求.如果可以实现,还要输出每堆石头里每一块石头的重量 比赛惨状 赛场上看见的第一反应--dp?不会.然后就先扔给有点思路队友,写另…
注意: 我比较弱, 并没有办法把外链bgm搞成https, 所以大家可以选择"加载不安全的脚本"或者把https改成http以获得更好的阅读体验! 据说, 退役了要写写回忆录. 但是我看到有人没退役就写了回忆录. 我看到有更多的人什么都没说, 默默地离开了, 即使心有不甘. 大概自己一个没有OI经历的人是没有资格写回忆录的吧. 所以权且只是写个游记. 其实我在上个大周就写完了90%, 然后用最后的15%覆盖了前面的75%, 相当于我3h啥也没干. 这就很气, 我就想这游记慢慢咕着吧 ,…
爬山题解不想写了 学数数 离散化然后找到以每一个值为最大值的连续子段有多少个,然后开个桶维护 那么怎么找以每一个值为最大值的连续子段个数 方法1(我的极笨的方法) 考试时我的丑陋思路, 定义极左值为左面第一个大于当前值的值,极右值为右面第一个大于当前值的值 ,找到最大值然后当前符合的子段个数就为$r-l+1+(r-now)*(now-l)$ 解释一下$r-l+1$为以$now$为边界的子段,$(r-now)*(now-l)$为包含$now$的子段 那么问题又转化为了如何求边界 我们发现找极左值,…