分析:就是判断简单的前缀有没有相同,注意下自身是m的倍数,以及vis[0]=true; #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #include <map> #include <queue> #include <vect…
链接:传送门 题意:给一个长为 n 的串,问是否有子串的和是 m 的倍数. 思路:典型鸽巢定理的应用,但是这里 n,m 的大小关系是不确定的,如果 n >= m 根据定理可以很简单的判定是一定有解的,当 n < m 的时候就需要去具体寻找一下了,这里构造一个新串 Si = a1 + a2 + a3 + ...... + ai ,如果新串 Si % m = 0 自然就yes了,对于任意一个串 Si % m 的余数范围在 [ 0 , m - 1 ] ,如果出现两个余数相同的新串 S 则就能构成 (…
分析:y是一个无平方因子数的平方,所以可以从sqrt(x)向上向下枚举找到第一个无平方因子比较大小 大家可能觉得这样找过去暴力,但实际上无平方因子的分布式非常密集的,相关题目,可以参考 CDOJ:无平方因子数 http://acm.uestc.edu.cn/#/problem/show/618 这个题和CDOJ的题虽然不一样,但是可以从CDOJ发现这种数是很多的 官方题解:官方题解说这个无平方因子的枚举量在logn级别,可见非常小 #include <cstdio> #include <…
Clarke and minecraft 问题描述 克拉克是一名人格分裂患者.某一天,克拉克分裂成了一个游戏玩家,玩起了minecraft.渐渐地,克拉克建起了一座城堡. 有一天,克拉克为了让更多的人分享自己的成果,开了局域网,并且选择创造模式.不幸的是,这一天有一个熊孩子进了克拉克的游戏,他在克拉克的城堡里放了很多个爬行者!当刚刚去外面打怪回.开着生存模式的克拉克回到城堡中的一瞬间,爬行者们突然自爆......(自行脑部画面)于是克拉克的城堡变成了一片废墟,圆石.木板.砖块等建筑材料撒落了一地…
转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Strange Class Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Description In Vivid’s school, there is a strange class(SC). In SC, the students’ nam…
Shortest Path  Accepts: 40  Submissions: 610  Time Limit: 4000/2000 MS (Java/Others)  Memory Limit: 131072/131072 K (Java/Others) 问题描述 有一条长度为nn的链. 节点ii和i+1i+1之间有长度为11的边. 现在又新加了3条边, 每条边长度都是1. 给出mm个询问, 每次询问两点之间的最短路. 输入描述 输入包含多组数据. 第一行有一个整数TT, 表示测试数据的组数…
sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1126    Accepted Submission(s): 494 Problem Description Given a sequence, you're asked whether there exists a consecutive subsequence whose…
大晚上的更一道下午的水题吧.(虽然WA了好多次= =,但真实情况是我比较水) 描述 Given a sequence, you're asked whether there exists a consecutive subsequence whose sum is divisible by m. output YES, otherwise output NO. 输入 The first line of the input has an integer T (1≤T≤10), which repr…
HDU 5904 - LCIS [ DP ]    BestCoder Round #87 题意: 给定两个序列,求它们的最长公共递增子序列的长度, 并且这个子序列的值是连续的 分析: 状态转移方程式: dp[a[i]] = max(dp[a[i]], dp[a[i]-1] + 1); 发现其实可以简化为 dp[a[i]] = dp[a[i]-1] + 1:因为计算过程中dp[a[i]]不会降低 对两个序列都求一遍,然后取两者最小值的最大值 #include <cstdio> #include…
BestCoder Round #90 本次至少暴露出三个知识点爆炸.... A. zz题 按题意copy  Init函数 然后统计就ok B. 博弈 题  不懂  推了半天的SG.....  结果这个题.... C 数据结构题   我写了半个小时分块   然后发现     改的是颜色.... 我的天  炸炸炸 D. 没看懂题目要干啥.....  官方题解要搞死小圆…