
ACwing
~无相~
这个作者很懒,什么都没留下…
展开
-
Acwing903. 昂贵的聘礼
题目年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说:”嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币。如果你能够弄来他的水晶球,那么只要5000金币就行了。”探险家就跑到大祭司那里,向他要求皮袄或水晶球,大祭司要他用金币来换,或者替他弄来其他的东西,他可以降低价格。探险家于是又跑到其他地方,其他人也提出了类似的要求,或者直接用金币换,或者找到原创 2020-09-14 15:25:34 · 162 阅读 · 1 评论 -
Acwing143. 最大异或对
思路用一个Tire树来存下N个数的二进制形式的01串,串的长度是31,因为每个数最多为2^31所以,取31,然后根据异或的特性,枚举一下所有的数,取这个数的反码,去树中寻找尽可能和反码向同的路径,并且记录下路径过程的异或值即可代码#include <cstring>#include <iostream>#include <algorithm>usin...原创 2020-03-16 20:37:30 · 183 阅读 · 0 评论 -
Acwing835. Trie字符串统计(Tire模板)
就是一个Tire模板维护一个字符串集合,支持两种操作:“I x”向集合中插入一个字符串x;“Q x”询问一个字符串在集合中出现了多少次。共有N个操作,输入的字符串总长度不超过 105,字符串仅包含小写英文字母。输入格式第一行包含整数N,表示操作数。接下来N行,每行包含一个操作指令,指令为”I x”或”Q x”中的一种。输出格式对于每个询问指令”Q x”,都要输出一个整数作为结...原创 2020-03-16 20:34:10 · 213 阅读 · 0 评论 -
64位整数乘法
题目(和快速幂原理一样)求 a 乘 b 对 p取模的值。输入格式第一行输入整数a,第二行输入整数b,第三行输入整数p。输出格式输出一个整数,表示a*b mod p的值。数据范围1≤a,b,p≤101864位整数乘法#include <cstdio>#include <cstring>#include <iostream>#inclu...原创 2020-03-05 16:47:36 · 204 阅读 · 0 评论 -
AcWing 244. 谜一样的牛
思路代码#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 100010;int n;int h[N];int ans[N];int tr[N];int lowbit(int x){ retu...原创 2020-03-04 14:28:20 · 195 阅读 · 0 评论 -
243. 一个简单的整数问题2
分析代码#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef long long LL;const int N = 100010;int n, m;int a[N];LL...原创 2020-03-04 12:36:31 · 234 阅读 · 0 评论 -
AcWing 242. 一个简单的整数问题
就是一个用差分后再用树状数组的问题代码#include <cstring>#include <algorithm>#include <iostream>using namespace std;typedef long long LL;const int N=100010;int a[N];int n,m;LL tr[N];int lowbi...原创 2020-03-04 12:08:32 · 173 阅读 · 0 评论 -
AcWing 241. 楼兰图腾
思路代码#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef long long LL;const int N = 200010;int n;int a[N];int tr...原创 2020-03-04 10:32:32 · 241 阅读 · 0 评论 -
AcWing 245. 你能回答这些问题吗
思路代码#include <cstring>#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int N=500010;int w[N];struct Node{ int l,r; int lmax,r...原创 2020-03-03 12:30:21 · 156 阅读 · 0 评论 -
AcWing 1275. 最大数
思路代码#include <cstring>#include <iostream>#include <algorithm>#include <cstdio>using namespace std;const int N=200010;struct point{ int l,r; int v;}tr[N*4];in...原创 2020-03-03 11:17:20 · 213 阅读 · 0 评论 -
AcWing 238. 银河英雄传说
思路其实就是个简单的并查集,只不过这里需要知道两个战舰的长度,需要len数组存一下某个根节点队列的长度,例如:len[2]就是以2为根节点的队列长度,那么两个集合合并的时候,将y集合接到x集合尾部,d[i]表示i节点到根节点的距离的话,d[y的根节点]=len[x],在更新len[x]+=len[y]即可代码#include <cstring>#include <iost...原创 2020-03-02 16:37:33 · 153 阅读 · 0 评论 -
奇偶游戏
思路带边权并查集#include <cstring>#include <algorithm>#include <iostream>#include <map>using namespace std;unordered_map<int,int> S;const int N=20010;int p[N];int d[N...原创 2020-03-02 15:23:00 · 149 阅读 · 0 评论 -
程序自动分析
思路代码#include <cstring>#include <algorithm>#include <iostream>#include <map>using namespace std;const int N=2000010;unordered_map<int, int> mp;//用来存下离散化后的编号int p...原创 2020-03-02 12:57:46 · 281 阅读 · 0 评论 -
搭配购买
思路代码#include <cstring>#include <algorithm>#include <iostream>using namespace std;int p[10010];int w[10010];int v[10010];int f[10010];int n,m,sum;int find(int x){ if ...原创 2020-03-02 11:53:25 · 200 阅读 · 0 评论 -
AcWing 1250. 格子游戏
思路如果一条边两个点连起来后,形成了一个封闭的圈,那么这两点之前肯定是再同一个联通块里面,所以只要用并查集判断一下连两个点的时候,是不是再同一个连通块内就可以了。代码#include <cstring>#include <algorithm>#include <iostream>using namespace std;int p[40000];i...原创 2020-03-02 10:07:45 · 380 阅读 · 0 评论 -
AcWing 167. 木棒
分析代码#include <cstring>#include <algorithm>#include <iostream>using namespace std;const int N=70;bool st[N];int n;int w[N];int len;int sum;bool dfs(int u,int cnt,int star...原创 2020-03-01 12:02:46 · 261 阅读 · 0 评论 -
AcWing 190. 字串变换
分析代码#include <cstring>#include <queue>#include <algorithm>#include <iostream>#include <unordered_map>using namespace std;const int N=6;string A,B;string a[N];s...原创 2020-02-27 12:26:36 · 150 阅读 · 0 评论 -
AcWing 1242. 修改数组
分析代码#include <cstdio>const int N = 1100010;int p[N];int find(int x){ if (p[x] != x) p[x] = find(p[x]); return p[x];}int main(){ int n; scanf("%d", &n); for...原创 2020-02-25 09:42:34 · 163 阅读 · 0 评论 -
AcWing 1078. 旅游规划
分析代码#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 200010, M = N * 2;int n;int h[N], e[M], ne[M], idx;...原创 2020-02-24 12:07:32 · 176 阅读 · 0 评论 -
AcWing 1226. 包子凑数
分析首先结论是如果所有的数的最大公约数不为1,就有不能凑出的数,并且小于10000,否则就有无限个二维做法#include <cstdio>#include <algorithm>using namespace std;const int N = 10010;int a[110];bool f[110][N];int gcd(int a, in...原创 2020-02-24 10:33:54 · 189 阅读 · 0 评论 -
Acwing1222. 密码脱落
分析代码#include <cstdio>#include <string.h>const int N = 1010;char s[N];int f[N][N];int main(){ scanf("%s", s); int n = strlen(s); for (int len = 1; len <= n; len ...原创 2020-02-21 12:57:18 · 198 阅读 · 0 评论 -
Acwing1050. 鸣人的影分身
分析代码#include <cstdio>#include <algorithm>using namespace std;const int N = 11;int main(){ int T; scanf("%d", &T); while (T -- ) { int n, m; s...原创 2020-02-21 11:17:13 · 260 阅读 · 0 评论 -
五指山
分析代码#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef long long LL;LL exgcd(LL a, LL b, LL &x, LL &y)//求...原创 2020-02-20 10:40:48 · 255 阅读 · 0 评论 -
AcWing 1239. 乘积最大
分析代码#include <cstring>#include <algorithm>#include <iostream>using namespace std;#define LL long longconst int mod=1000000009;int g[100005];int main(){ int n,k; ci...原创 2020-02-09 13:25:01 · 131 阅读 · 0 评论 -
Acwing1235. 付账问题
题目几个人一起出去吃饭是常有的事。但在结帐的时候,常常会出现一些争执。现在有 n个人出去吃饭,他们总共消费了 S元。其中第 i个人带了 ai元。幸运的是,所有人带的钱的总数是足够付账的,但现在问题来了:每个人分别要出多少钱呢?为了公平起见,我们希望在总付钱量恰好为 S的前提下,最后每个人付的钱的标准差最小。这里我们约定,每个人支付的钱数可以是任意非负实数,即可以不是 1分钱的整数倍...原创 2020-02-09 12:26:30 · 358 阅读 · 0 评论 -
AcWing 122. 糖果传递
分析代码#include <cstring>#include <algorithm>#include <iostream>using namespace std;#define LL long longconst int N=1000010;LL c[N];LL a[N];int main(){ int n; cin >...原创 2020-02-03 11:32:37 · 332 阅读 · 0 评论 -
AcWing 1237. 螺旋折线
分析代码#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef long long LL;int main(){ int x, y; cin >> x >> y; if (ab...原创 2020-01-30 18:15:53 · 167 阅读 · 0 评论 -
Acwing.1215. 小朋友排队
分析代码#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef long long LL;const int N = 1000010;int n;int h[N], tr[N...原创 2020-01-29 19:02:35 · 210 阅读 · 0 评论 -
Acwing.单链表
题目实现一个单链表,链表初始为空,支持三种操作:(1) 向链表头插入一个数;(2) 删除第k个插入的数后面的数;(3) 在第k个插入的数后插入一个数现在要对该链表进行M次操作,进行完所有操作后,从头到尾输出整个链表。注意:题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序,这n个数依次为:第1个插入的数,第2个插入的数,…第n个插入的数...原创 2020-01-28 15:33:59 · 403 阅读 · 0 评论 -
AcWing 1224. 交换瓶子
分析代码#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N=1e5+5;int a[N];bool st[N];int main(){ int n; cin >> n; for(i...原创 2020-01-27 13:43:23 · 193 阅读 · 0 评论 -
Acwing1101. 献给阿尔吉侬的花束
步骤代码#include <iostream>#include <cstring>#include <algorithm>#include <queue>using namespace std;typedef pair<int, int> PII;const int N=220;char g[N][N];int di...原创 2020-01-27 11:52:50 · 312 阅读 · 0 评论 -
AcWing 1238. 日志统计
分析代码#include <iostream>#include <cstring>#include <algorithm>#define x first#define y secondusing namespace std;typedef pair<int, int> PII;const int N=1e5+5;bool st[...原创 2020-01-27 11:00:27 · 231 阅读 · 0 评论 -
AcWing 1264. 动态求连续区间和
线状数组#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 100010;int n, m;int a[N], tr[N];int lowbit(int x){...原创 2020-01-27 10:02:46 · 160 阅读 · 0 评论 -
1236. 递增三元组
分析代码#include <cstring>#include <algorithm>#include <iostream>using namespace std;const int N=1e5+5;int a[N];int b[N];int c[N];int cnt[N];int s[N];int acount[N];int ccou...原创 2020-01-22 12:56:01 · 261 阅读 · 0 评论 -
AcWing 1210. 连号区间数
思路代码#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int INF=0x3f3f3f3f;int a[10005];int main(){ int n ; cin >> n; int re...原创 2020-01-22 11:45:32 · 154 阅读 · 0 评论 -
1214. 波动数列
分析代码#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 1010, MOD = 100000007;int f[N][N];int get_mod(int a, int b) // 求a除以b的正余数...原创 2020-01-22 11:10:28 · 229 阅读 · 0 评论 -
1211. 蚂蚁感冒
分析代码#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 55;int n;int x[N];int main(){ cin >> n; for (int i = 0; i ...原创 2020-01-22 10:23:58 · 154 阅读 · 0 评论 -
AcWing 1230. K倍区间
思路代码#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N=1e5+5;#define LL long longLL a[N];LL cnt[N];int main(){ int n,m; cin &g...原创 2020-01-20 18:06:24 · 200 阅读 · 0 评论 -
AcWing 1221. 四平方和
题目四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多 4个正整数的平方和。如果把 0包括进去,就正好可以表示为 4个数的平方和。比如:5=02+02+12+227=12+12+12+22对于一个给定的正整数,可能存在多种平方和的表示法。要求你对 4个数排序:0≤a≤b≤c≤d并对所有的可能表示法按 a,b,c,d为联合主键升序排列,最后输出第一个表示法。...原创 2020-01-20 10:15:29 · 268 阅读 · 0 评论 -
AcWing 1081. 度的数量
思路这是一道数位dp问题,对于数位dp问题关键就在于分类讨论。首先我们把数字 n 对于B进制来进行分解 ,将每一位上的数字存入一个数组中,然后从高位往低位去讨论,首先 对于第 i 位数字 x 有三种情况x = 0 :则 i 位上只能取 0 ,所以直接讨论 i-1 位就可以了x = 1 :则 i 位上取 0 的时候,后面i-1位都可以随意取值 ,取 1 的时候,后面i- 1位要再小于题目...原创 2019-12-14 11:43:59 · 225 阅读 · 0 评论