洛谷 P2421 A-B数对(增强版)】的更多相关文章

洛谷P2421:https://www.luogu.org/problemnew/show/P2421 思路 从洞的最大编号开始增大枚举答案 对于每一个枚举的ans要满足Ci+k*Pi≡Cj+k*Pj(mod ans)的k ,都要k>min(L[i],L[j])  因为这个ans一定要满足在一个野人死之前可以满足条件 根据上式可以推出Ci+k*Pi=Cj+k*Pj+m*ans   移项得k*(Pi-Pj)+m*ans=Cj-Ci 即可用Exgcd求解此式子 代码 #include<iostre…
题目背景 woshiren在洛谷刷题,感觉第一题:求两数的和(A+B Problem)太无聊了,于是增加了一题:A-B Problem,难倒了一群小朋友,哈哈. 题目描述 给出N 个从小到大排好序的整数,一个差值C,要求在这N个整数中找两个数A 和B,使得A-B=C,问这样的方案有多少种? 例如:N=5,C=2,5 个整数是:2 2 4 8 10.答案是3.具体方案:第3 个数减第1 个数:第3 个数减第2 个数:第5 个数减第4 个数. 输入输出格式 输入格式: 第一行2 个正整数:N,C.…
刷了这么久的数位 dp ,照样被这题虐,还从早上虐到晚上,对自己无语...(机房里又是只有我一个人,寂寞.) 题目:洛谷P3281 [SCOI2013]数数 题目描述 Fish 是一条生活在海里的鱼,有一天他很无聊,就开始数数玩.他数数玩的具体规则是: 确定数数的进制B 确定一个数数的区间[L, R] 对于[L, R] 间的每一个数,把该数视为一个字符串,列出该字符串的每一个(连续的)子串对应的B进制数的值. 对所有列出的数求和.现在Fish 数了一遍数,但是不确定自己的结果是否正确了.由于[L…
(今天yuezhuren大课间放我们出来了……) (另外今天回了两趟初中部) 拼数[传送门] 洛谷算法标签: (然鹅这两个学的都不好,能过真的how strange) 开始的时候没读题啊,直接暴力sort给数据(int型的)排序然后从大到小输出了……(居然还ac了一个点) 然后我去仔细读了题,发现当这个数字首字母越大时(相同的话比下一位),位置越靠前,组成的数就越大,因为字符长度不确定,然后我在想是不是用字符类型的比较好做???? 好了又半途不想写了   直接上代码吧 #include<iost…
(洛谷t2755暂时过不去了) 删数问题[传送门] 洛谷算法标签: emmmm……删数问题又牵扯到了字符串.因为毕竟高精度的数240位呢!要是输入一个整型,要码240行来求出每一位……怕是还没求出来就tel了.所以我们又用到了字符串(真的很常用哎).这个题ac起来还是比较easy的,毕竟一本通上有题.BUT——一本通上本没有考虑删后的数是零的情况啊!我也没考虑,所以没有一遍a[桑心](下课辽要,直接附ac代码吧) #include<iostream> #include<cstdio>…
BZOJ传送门:洛谷传送门 数颜色 题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会向你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔. 2. R P Col 把第P支画笔替换为颜色Col. 为了满足墨墨的要求,你知道你需要干什么了吗? 输入输出格式 输入格式: 第1行两个整数N,M,分别代表初始画笔的数量以及墨墨会做的事情的个数. 第2行N个整数,分别代表初始画笔排中第i支画笔的颜色. 第3行到第2…
题面 洛谷 题解 考虑暴力,对于询问中的一段区间\([l,r]\),我们先将其中的数升序排序,假设当前可以表示出\([1,k]\)目前处理\(a_i\),假如\(a_i>k+1\),则答案就是\(k+1\),否则,调整右界到\(k+a_i\). 考虑如何优化,还是扫到了\([1,k]\),假设\(ans=k+1\),如果所有小于等于\(ans\)的数的和\(sum\)起来大于等于\(ans\),则一定可以将\(k\)更新成\(sum\).否则直接输出就好了. 以上这个过程很明显可以用主席树维护,…
玄学代码(是洛谷题解里的一位dalao小粉兔写的) //数位DP(二进制)计算出f[i]为恰好有i个的方案数. //答案为∏(i^f[i]),快速幂解决. #include<bits/stdc++.h> using namespace std; #define ll long long ; ll n,ans=; ll c,f[]; ll qpow(ll b,ll e){ ll a=; ) e&?a=a*b%mod:; return a; } int main(){ scanf(&quo…
题目背景 原 A-B数对(增强版)参见P1102 题目描述 克里特岛以野人群居而著称.岛上有排列成环行的M个山洞.这些山洞顺时针编号为1,2,…,M.岛上住着N个野人,一开始依次住在山洞C1,C2,…,CN中,以后每年,第i个野人会沿顺时针向前走Pi个洞住下来. 每个野人i有一个寿命值Li,即生存的年数. 下面四幅图描述了一个有6个山洞,住有三个野人的岛上前四年的情况.三个野人初始的洞穴编号依次为1,2,3:每年要走过的洞穴数依次为3,7,2:寿命值依次为4,3,1. 奇怪的是,虽然野人有很多,…
BZOJ原题链接 洛谷原题链接 简单的数位\(DP\),套模板就好. #include<cstdio> #include<cstring> using namespace std; const int N = 15; int f[N][N], a[N]; inline int re() { int x = 0; char c = getchar(); bool p = 0; for (; c < '0' || c > '9'; c = getchar()) p |= c…