摘要:
HDU4507 如果一个整数符合下面3个条件之一,那么我们就说这个整数和7有关—— 1、整数中某一位是7。 2、整数中的每一位加起来的和是7的整数倍。 3、这个整数是7的整数倍。 要求一个区间中和7无关的数的平方和。 需要用数位DP维护3个值: 1、与7无关的数的个数。 2、与7无关的数的和。 3、 阅读全文
摘要:
给定L,R,你可以用至多32个点构造一张简单DAG,并给每条边定一个正边权 #include<bits/stdc++.h> using namespace std; const int maxn=1010; int L,R; vector<pair<pair<int,int> ,int> > ans 阅读全文
摘要:
这两个版本之间的唯一区别是,此版本要求的是最大可能的答案。 荷马非常喜欢数组。今天,他正在绘制一个数组a1,a2,…,an,它具有白色和黑色两种颜色。 a1,a2,…,an的绘画分配由数组b1,b2,…,bn描述,bi指示ai的颜色(白色为0,黑色为1)。 根据绘画任务b1,b2,…,bn,将数组a 阅读全文
摘要:
题意: 给出一棵树,每次询问两点之间是否存在一个l到r之间的数出现奇数次,找到这个数。 题解: 询问是否出现奇数次,用可持久化线段树套树上差分维护异或和。 找到这个数,不套随机数一直wa5,看了官方题解,里面有证明套随机数求解这个问题可以做到大概率正确。woc真的好难。 #include<bits/ 阅读全文
摘要:
题意: 给出一棵树,支持以下操作: 选择树上2个叶子节点,把这2个节点加到答案里,同时删除其中一个节点。 询问怎么操作使得答案最大。 题解: 结论:维护一条直径,除直径以外的点对答案的贡献是max(dis(i,x),dis(i,y))。 直径端点的求解方法: 先一遍搜索出最深的点,那么这个点一定是端 阅读全文
摘要:
题意: 给出一棵树。 定义一个叶子集合为: 集合中任意一对叶子之间的距离小于等于k 询问最少可以把叶子分成几个集合。 做法: 考虑每次从最深的点开始搜索,这样可以保证,搜K次搜到的点之间的距离不超过K。 #include<bits/stdc++.h> using namespace std; con 阅读全文
摘要:
杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。 不吉利的数字为所有含有4或62的号码。例如: 62315 73418 8891 阅读全文
摘要:
题解: 既然只有5个点,那就无限乱搞,我的做法是不断取出当前点集两两之间的LCA插入点集,直到所有两两之间的LCA都已经在点集中了。 这一步的时间复杂度我感觉是一个调和级数,是可以被忽略的。 然后对每个点保存它的最深父亲,然后对点集建一棵树,对这棵树算边权贡献即可。 #include<bits/st 阅读全文
摘要:
链接:https://ac.nowcoder.com/acm/contest/9983/J来源:牛客网有一天牛牛和牛妹在做游戏,规则如下: 桌面上摆着n\mathit nn张纸牌,每张纸牌上写着一个正整数,由牛牛先手轮流执行以下操作: 1.\text 1.1.如果桌面上只剩一张纸牌,游戏结束,这张纸 阅读全文
摘要:
链接:https://ac.nowcoder.com/acm/contest/9983/I来源:牛客网设一个长度为m\mathit mm的序列S\mathit SS的美观度等于有多少个整数i\mathit ii满足1≤i≤m−11\leq i \leq m-11≤i≤m−1且Si=Si+1S_{i} 阅读全文