预处理 Gym - 101128H】的更多相关文章

题目链接:http://codeforces.com/gym/101128 题目大意:给你一个区间[x,y],找出这个区间有多少个seldom的数字. seldom的数字定义如下:该数值的二进制数字符合如下条件ABAB...ABAB 或者 ABABA....BA,其中A表示连续的1的个数,B表示连续的0的个数. 思路:因为长度只有63,本来以为是数位dp的,想了想直接暴力预处理就好了 //看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的条件 #include <bits…
题意 给你两个整数X和Y 问你在区间[X,Y]中,有多少数字的二进制满足ABAB或者A这种形式.A是某个数量的1,B是某个数量的0. 分析 因为数据规模很大,直接枚举x和y之间的数字然后判断会超时.所以直接构造符合的二进制串然后判断是不是在区间[X,Y]内就好.因为二进制串的长度最多只有63,所以随便枚举就行.但是写起来确实麻烦,容易出错的地方太多. 下面的代码是在场上两个队友写的,场上的代码嘛~可能有点乱~(好吧是我懒得再写一遍了 #include <cstdio> #include <…
H. Special Palindrome time limit per test:1 second memory limit per test:64 megabytes input:standard input output:standard output A sequence of positive and non-zero integers called palindromic if it can be read the same forward and backward, for exa…
D. Time to go back time limit per test:1 second memory limit per test:256 megabytes input:standard input output:standard output You have been out of Syria for a long time, and you recently decided to come back. You remember that you have M friends th…
题目链接  2016 EC-Final 题意  现在要找到数列中连续两个子序列(没有公共部分).要求这两个子序列本身内部没有重复出现的数.   求这两个子序列的长度的和的最大值. 首先预处理一下.令$f[i][j]$为$i$到$j$这段数字里面能找到的符合题意条件的区间的长度的最大值. 这段预处理时间复杂度$O(n^{2})$ 然后$O(n^{2})$枚举第一个区间,如果出现重复的数字了那么的第二层循环break掉. 记当前枚举到的区间的长度为$s$ 在刚刚枚举的基础上,考虑枚举到的这个区间的右…
1.不会超过500个不同的串-- 2.样例没给has到has是怎么样的,实测是true. 3.记忆化别剪错枝就好,嘤嘤嘤-- const int maxn = 505 + 5; int n, m, tot; string s, op, t; bool can[maxn][maxn][2], used[maxn][2]; map<string, int> id; void GetId(string s) { if (!id[s]) id[s] = ++tot; } void dfs(int f,…
Intervals 题目连接: http://codeforces.com/gym/100231/attachments Description Start with an integer, N0, which is greater than 0. Let N1 be the number of ones in the binary representation of N0. So, if N0 = 27, N1 = 4. For all i > 0, let Ni be the number…
Problem J. TriatripTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/attachments Description The travel agency “Four Russians” is offering the new service for their clients. Unlike other agencies that only suggest one-way…
题目链接: http://codeforces.com/gym/100851 题目大意: 一个N*N的矩阵A,Ai,j=i+j,Q次操作,每次分两种,R r取出第r行还未被取的所有数,并输出和.C c取出第c列还未被取出的所有数并输出和. 题目思路: [模拟] 首先Ai,j=i+j这个很关键.预处理每一行(=列)的值. 只要记录当前取得时候前面已经取过的所有行数的和.次数,所有列数的和.次数,就能推算出这次取数会少掉多少值. 并记录这一行或这一列被取过没有. // //by coolxxx //…
题目链接:http://codeforces.com/gym/101982/attachments 题目大意:有区间[a,b]和区间[c,d],求gcd(x,y)=1,其中x属于[a,b],y属于[c,d],求这样的x,y有多少对. 解题思路: 第一种反演思路: 把下界变换一下 代码: #include<iostream> #include<cstdio> using namespace std; typedef long long ll; ; ll a,b,c,d,mu[maxn…