[题目]C - Remainder Game [题意]给定n个数字的序列A,每次可以选择一个数字k并选择一些数字对k取模,花费2^k的代价.要求最终变成序列B,求最小代价或无解.n<=50,0<=ai,bi<=50. [题解]首先需要一些性质: 1.一个数字取模k后,再取模>=k的数字就没有意义,因此操作顺序一定是k从大到小,并且每个k只用一次. 2.由于$2^k>2^{k-1}+2^{k-2}+...+2^0$,所以代价最小的序列一定是字典序最小的. 故现在要求字典序最小的…
题目链接:http://arc075.contest.atcoder.jp/tasks/arc075_d 题意:求rev(N)=N+D的个数,rev表示取反.例如rev(123)=321 题解:具体看一下代码,这题需要思考一下,虽然是简单的dfs但是不好想到. #include <iostream> #include <cstring> #include <cmath> using namespace std; typedef long long ll; ll Powe…
Remainder Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2255 Accepted Submission(s): 479 Problem Description Coco is a clever boy, who is good at mathematics. However, he is puzzled by a difficu…
Remainder Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2260 Accepted Submission(s): 481 Problem Description Coco is a clever boy, who is good at mathematics. However, he is puzzled by a difficu…
题目链接 https://atcoder.jp/contests/agc022/tasks/agc022_c 题解 大水题一道 就他给的这个代价,猜都能猜到每个数只能用一次 仔细想想,我们肯定是按顺序从大到小用,一个数用多次肯定没意义,于是证完了 并且所有元素独立 所以我们就是要从大到小贪心判断每个元素是否能不用 比如当前要判断\(x\)是否能不用,那么就判断用当前已经确定要用的集合并上所有小于\(x\)的数能不能达到目的 这个东西建个图判一下连通性就行了 时间复杂度\(O(N^4)\) 代码…
Atcoder 题面传送门 & 洛谷题面传送门 首先先考虑如果没有什么子集的限制怎样计算方案数.明显就是一个区间 \(dp\),这个恰好一年前就做过类似的题目了.我们设 \(f_{l,r}\) 为压缩 \([l,r]\) 的方案数,\(g_{l,r}\) 表示压缩 \([l,r]\),并且强制要求 \([l,r]\) 必须用括号括起来的方案数,那么 \(f_{l,r}\) 转移显然可以枚举第一段括号的位置,即 \(f_{l,r}=\sum\limits_{k=l-1}^rg_{l,k}f_{k+…
A - Diverse Word 不到26位就加上一个最小的 到26位了就搜一下,最多回溯就一次,所以复杂度不大 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <ctime> #include <vector> //#define ivorysi #define…
传送门 感觉自己搜索能力退化了,这种弱智搜索写了整整5min,这样下去比赛会凉的. 看来得多练练题了. 代码: #include<bits/stdc++.h> #define ll long long using namespace std; ll x,ans=0; int n,num[15]; inline void dfs(int pos,ll sum){ if(pos==n+1){ans+=sum;return;} ll tmp=0; for(int i=pos;i<=n;++i)…
https://atcoder.jp/contests/abc133/tasks/abc133_c 思路:由于L,R区间太大,所以不能暴力枚举.由于求(i*j)%2019的最小值,那么2019的倍数对2019求余则为零. 1.如果L/2019和R/2019一样说明,L和R之间没有2019的倍数,那么这种情况下,可以在L到R之间进行枚举 2.如果L/2019和R/2019不一样说明,L和R之间存在2019的倍数,则输出0 题解: #include <iostream> using namespa…
[题目]F - Leftmost Ball [题意]给定n种颜色的球各k个,每次以任意顺序排列所有球并将每种颜色最左端的球染成颜色0,求有多少种不同的颜色排列.n,k<=2000. [算法]计数DP [题解]只看黑体字部分即可. 自己考虑了几种计数方案,都不能实现.一种从左到右,但要记录每种球剩余多少,不可行.一种从右到左枚举白球包含区间填充,但因为只看白球,每种颜色没有关键球,会有重复统计的问题. 计数的关键在于白球的原色不重要以及每种颜色关注最左端的球(这里不含变成白球的球). 本题既然nk…