- 博客(17)
- 收藏
- 关注
原创 Deltix Round, Summer 2021 (open for everyone, rated, Div. 1 + Div. 2) D. Take a Guess
题目链接 题目大意:让你猜一个n长度序列里第k大的数,每次操作你可以询问i,j<=n他们的and值或者or值,在操作次数小于2n的情况下求出答案 思路:根据a+b=a&b+a|b,a+b=2*(a&b)+(aXORb)可得,两次操作分别求出a&b和a|b从而求出aXORb(这里XOR为异或)设p[i]=a[i]^a[i+1]从而用2n-2次方法求出p[i],此时我们知道序列中任何一项即可求出整个序列,在上面我们已经知道a[1]+a[2],a[2]+a[3],所以我们只需要知道a
2021-08-30 04:19:53 630
原创 2021蓝桥杯I题国际象棋
状压dp dp[i][j][k][p]第i行状态为j第i-1行状态为k下了p个棋子的方案数 dp[i][j][k][p]可由所有的合法的即q的状态不与j和k冲突,j和k的状态不冲突的dp[i-1][q][j][p-st[q]]转移而来 初始值为dp[0][0][0][0]=1;这样第一行所有合法状态能从dp[0][0][0][0]=1转移而来 #include <bits/stdc++.h> #define int long long #include <set> #define r
2021-05-21 12:52:18 301
原创 圆与直线交点
圆与直线交点题目链接 #include<cstdio>//使用scanf和printf的头文件 #include<cstring>//使用C风格字符串函数的头文件 #include<algorithm>//使用算法库的头文件,max,min,swap,sort等 #include<iostream>//使用cin,cout的头文件 #include<cmath>//数学头文件 #include<cstdlib>//使用memset函数
2021-03-20 16:47:45 188
原创 扫描线
多个矩形面积,扫描线 #include<cstdio>//使用scanf和printf的头文件 #include<cstring>//使用C风格字符串函数的头文件 #include<algorithm>//使用算法库的头文件,max,min,swap,sort等 #include<iostream>//使用cin,cout的头文件 #include<cmath>//数学头文件 #include<cstdlib>//使用memset函数
2021-03-18 19:08:06 144
原创 计算几何模板
#include<cstdio>//使用scanf和printf的头文件 #include<cstring>//使用C风格字符串函数的头文件 #include<algorithm>//使用算法库的头文件,max,min,swap,sort等 #include<iostream>//使用cin,cout的头文件 #include<cmath>//数学头文件 #include<cstdlib>//使用memset函数的头文件 #defin
2021-03-11 22:00:22 137
原创 2021-03-10
poj2398计算几何 #include<cstdio>//使用scanf和printf的头文件 #include<cstring>//使用C风格字符串函数的头文件 #include<algorithm>//使用算法库的头文件,max,min,swap,sort等 #include<iostream>//使用cin,cout的头文件 #include<cmath>//数学头文件 #define ll long long #define ull
2021-03-10 13:53:40 126
原创 Educational Codeforces Round 105 (Rated for Div. 2) C. 1D Sokoban
C. 1D Sokoban 题目链接 题目大意在数轴上给你n个箱子在数轴上的坐标,和m个得分点在数轴上的坐标,如果箱子在得分点上玩家得一分,问玩家最多能得多少分. 思路:很明显我们知道答案就是推前i个箱子的得分加上后n-i个箱子不推的得分的最大值,对于后n-i个箱子我们预处理就可以了,因为前i个箱子会覆盖一个i长度的区间,所以我们只需要找到i长度覆盖的最多得分点就ok了 复杂度是O(n+m).因为箱子和得分点有正负所以我们得分开处理正负轴。 #include<bits/stdc++.h> #de
2021-03-04 22:30:14 206 1
原创 2020年icpc上海站 C题Sum of Log
2020年icpc上海站 C题Sum of Log 题目链接 从最高位枚举, #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<algorithm> #include<cstring> #include<queue> #define int long long const int maxn=1e4+10; const
2020-12-17 19:33:01 389
原创 div2 D. Extreme Subtraction
codeforces 1443 problem D 题目链接 题目大意:给你一个长度为n序列,你可以进行无数次操作,让前k个数减一或让后k个数减一,1<=k<=n,问是否能把这整个序列变为0序列, (我是傻逼,没有初始化,太菜了,比赛的时候没有做出来QAQ ) 写题时要找好清晰的思路 8 252 210 750 818 640 868 700 777 首先可以确定,如果一个数能被减小,他能减少的数值一定不会超过他之前能被减少的数值 比如上面那个例子,750绝对不可能变成比540还小的数,如果继续
2020-11-03 12:29:49 1510 7
原创 div3 C. Dominant Piranha
div3 C. Dominant Piranha(思维) 题目链接 题目大意是给你一堆序列,一开始选择一个数,每次可以进行一次操作,如果当前数大于临近的数则可以把周围数“吃掉”,然后序列数减一,该数加一,经过多次操作后如果可以把序列数变为1,如果存在这样的数则输出该数的下标,否则输出-1.(当时打比赛的时候太傻逼了,居然跟着题目走,而没有自己思考,比如找极值或者必胜点), 我们很明显可以得到一个结论,如果这个序列里面的最大值可以吃掉周围的数,那么这将绝杀,因为不可能有数比这个数还要大,所以必定可以吃完,(如
2020-10-22 21:20:25 289
原创 1417 D Make Them Equal
D. Make Them Equal 题目链接 题目大意就是有一个序列a,每一次操作可以选择一个i,j,x使得a[i]=a[i]-xi,a[j]=a[j]+xi,x属于正整数 然后要在3*n-1的操作是的这个序列全部相等 我们可以看到每一次操作是两个数加减同一个数,所以在这个序列a总和在操作过程中是不变的 根据这个系统所具有的特性我们知道这个最后相等的数一定等于平均数,否则输出-1 我们知道由于a[1],1的特性,他能变成任意的数,所以可以很好的实现我们的中介功能, 第一次操作让全部数全部变为i的倍数,,然
2020-10-17 10:38:06 146
原创 D. Captain Flint and Treasure
660Div2 D. Captain Flint and Treasure 题目链接 我们根据题目给出的元素与元素的关系可以得到,i是接在b[i]后面的(b[i]!=-1时)很明显我们可以了解到的是: 元素与元素之间组成了一条链式结构而且是有向的,我们很容易就想到拓扑排序 那么在这个拓扑序里面我们可以利用贪心的思想如果a[i]为正数且b[i]不为-1那么所链接的b[i]所对应的a[b[i]]就加上a[i],否则就不加,然后我们判断a[i]是否正数如果是正数就沿着拓扑序走如果是负数就反着走这样我们就保证答案是
2020-10-14 13:15:40 193
原创 1388C. Uncle Bogdan and Country Happiness
1388C. Uncle Bogdan and Country Happiness 题目链接 (思维树型递推) 在写题目的时候要学会找出题目所给出的条件和变量的联系不要盲目写题。找到关系式列方程推导往往是解题的关键 设x为可以到达该节点的开心人口 y为可以到达该节点的不开心人口 有题目可以知道x+y=p,x-y=h 联立两个式子可得x=(p+h)/2 所以开心人口x一定是偶数,而且一定是大于0小于到达该节点的人数的 而且到达该节点的开心人口一定是小于所有儿子的开心人口的,(开心人口只会递减 #include
2020-10-13 23:48:54 124
原创 CF div3的E题(思维). Rock, Paper, Scissors
CF div3的E题(思维). Rock, Paper, Scissors 题目大意爱丽丝和鲍勃比石头剪刀布然后给一个n表示石头,剪刀,布出次数的总和。 Alice要出a1,a2,a3个石头,剪刀,布,Bob要出b1,b2,b3。 a1+a2+a3 = b1 + b2 + b3 = n; 问爱丽丝最少能赢的局数和爱丽丝最多能赢的局数 很明显爱丽丝最大能赢的局数很好求让石头跟剪刀,剪刀跟布,布跟石头一 一对应就好 最小的局数我们推一下也就出来了 假设爱丽丝出布的次数远大于鲍勃出剪刀和布的数量, 那么a3-b2
2020-09-30 17:00:19 345
原创 2020牛客寒假算法基础集训营4 B 括号序列
链接:https://ac.nowcoder.com/acm/contest/3005/B 来源:牛客网 注意:数据已加强并进行了rejudge 给出一个仅包含’[’,’]’,’(’,’)’,’{’,’}'六种字符的括号序列,判断其是否合法。 空串是一个合法的括号序列 如果A, B 都是合法的括号序列,那么AB也是合法的括号序列 如果A是合法...
2020-03-14 16:02:49 160
原创 2020牛客寒假算法基础集训营4 A 欧几里得
欧几里得算法是一种求最大公约数的有效算法,在算法竞赛中很常用。 这个算法的 Python 实现如下: def gcd(a,b): if b == 0: return a return gcd(b,a%b) 现在,如果已知 gcd(a,b) 共递归了 n次,求所有可能的a,b中满足a>b>=0且a+b最小的一组的a与b之和。 输入描述: 第一行一个整数,T。接下来T行一行一个...
2020-03-14 15:49:16 130
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人