模拟赛
ssllyr
锦瑟无端五十弦,一弦一柱思华年。
展开
-
【2020.10.28SSL普及模拟赛T6】【POPULAR受欢迎的牛】【DFS】
题目描述 每头牛都有一个梦想:成为一个群体中最受欢迎的名牛!在一个有N(1<=N<=10,000)头牛的牛群中,给你M(1<=M<=50,000)个二元组(A , B ) 表示A认为B是受欢迎的。既然受欢迎是可传递的,那么如果A认为B受欢迎,B又认为C受欢迎,则A也会认为C是受欢迎的,哪怕这不是十分明确的规定。你的任务是计算被所有其它的牛都喜欢的牛的个数。 输入 第一行,两个数,N和M。第2~M+1行,每行两个数,A和B,表示A认为B是受欢迎的。 输出 一个数,被其他所有奶牛认为受欢原创 2020-10-29 10:11:49 · 124 阅读 · 0 评论 -
【2020.10.28SSL普及模拟赛T5】小b浇花【数学】
分析 先排序,然后瞎想一下就可以知道,最优的情况应该是把这个数列变成单调递增且相邻差值最小。 模拟每一天,判断两个花之间的关系,累加数量。 上代码 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int n,a[40001],ans; int main() { cin>>n; for(int i=1;i<=n;i++) { c..原创 2020-10-29 09:20:54 · 99 阅读 · 0 评论 -
【2020.10.28SSL普及模拟赛T4】最大异或和【二进制 异或】
分析 先拆分二进制 统计1个数 因为不能有两个0 或两个1 统计出每个数二进制下1 的个数 如果只有1 位1 则直接算2i2^i2i 要么则后面的都可以为1 可以选 全部累加成2j2^j2j即可 上代码 //先 拆分二进制 统计1个数 //然后 10^9大概是30位 for(i=30~0) 如果1的个数=1 就累加2的i次方 >1就 //for(j=i~0) 累加2^j #include<iostream> #include<cstdio> #include<a..原创 2020-10-29 09:04:08 · 140 阅读 · 0 评论 -
【2020.10.28SSL普及模拟赛T3】【区间和的和】【数学】
分析 首先想到的就是暴力枚举每一个区间,求和之后存在数组里然后再求和。 但是稳T 所以反过来想每一个数对多少个区间产生了贡献。 所以a[i]的出现次数为i∗(n−i+1)i*(n-i+1)i∗(n−i+1) 上代码 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; ll n,a,ans; int main() { ..原创 2020-10-29 08:58:28 · 107 阅读 · 0 评论 -
【2020.10.28SSL普及模拟赛T2】【SMRTFUN】【DP01背包变式】
题目背景 奶牛想证明它们是聪明而风趣的。为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行了面试,确定了每头奶牛的智商和情商。 题目描述 贝西有权选择让哪些奶牛参加展览。由于负的智商或情商会造成负面效果,所以贝西不希望出展奶牛的智商之和小于零,或情商之和小于零。满足这两个条件下,她希望出展奶牛的智商与情商之和越大越好,请帮助贝西求出这个最大值。 输入格式 • 第一行:单个整数N,1 ≤ N ≤ 400 • 第二行到第N + 1 行:第i + 1 行有两个整数:Si 和Fi,表示第i 头奶牛的智商和情商,原创 2020-10-29 08:35:52 · 148 阅读 · 0 评论 -
【2020.10.28SSL普及模拟赛T1】MSWORLD【凸包】
题目描述 给定平面上 n个点,求凸包直径。 输入格式 第一行一个正整数 n。 接下来 n 行,每行两个整数 x,y,表示一个点的坐标。 输出格式 输出一行一个整数,表示答案的平方。 输入输出样例 输入 #1 4 0 0 0 1 1 1 1 0 输出 #1 2 说明/提示 【数据范围】 对于 100% 的数据,2≤n≤50000,∣x∣,∣y∣≤104 分析 洛谷评级紫题就离谱。。 只要对于每一对点算出他们之间的距离,然后打擂台比较一下。算距离就是勾股定理嘛。 时间复杂度O(n2)O(n^2)O(n2).原创 2020-10-28 21:43:42 · 133 阅读 · 0 评论 -
【2020.10.27SSL普及模拟赛T3】小A的游戏
分析 如果无法判断 那必然是出现了重复的字母 我们可以发现一个性质:当第一对重复字母之间的距离<=k时 就无法判断了 比如S=“SASS” ,k=2时 如果剩下AS 可以删去1,3或1,4所以无法判断 则第一对为1,3 距离为2 符合性质 所以不能判断 上代码 #include<iostream> #include<cstdio> using namespace std; int n,k,ff; string s; int main() { cin>>n..原创 2020-10-28 21:04:44 · 124 阅读 · 0 评论 -
【2020.10.27SSL模拟赛普及T2】小biu放牛【二分】【贪心】
分析 这题二分 贪心 来考虑放牛 通过输入计算牛的head ,tail 再判断越界情况即可 上代码 #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; int n,x,m,a[1000001]; bool check(int p) { int head=0,tail=0; for(int i=1;i<=n;i+..原创 2020-10-28 20:55:14 · 121 阅读 · 0 评论 -
【2020.10.27普及组SSL模拟赛T1】魔法阵【数学】
分析 瞎想一波:将一个正n边形切成正多边形,剩余的边数必将是n的因数。 所以我们直接枚举全部剩余边形的最大和就行了 上代码 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int n,a[20001],s; int fac[20001],sfac,mx,k,ff; void cfac()//求因数 { for(int i=2;i<n;i++) { ..原创 2020-10-28 20:39:12 · 145 阅读 · 0 评论 -
【2020.10.26 SSL模拟赛T4】走方格【前后缀和】
分析 这题要预处理奇数位和偶数位的前缀和&后缀和。 然后直接枚举位置+统计。 上代码 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int n,ans; long long a[200001],f[200001][2]; int main() { cin>>n; for(int i=1;i<=n;i++) { ..原创 2020-10-28 20:14:24 · 78 阅读 · 0 评论 -
【2020.10.26 SSL模拟赛T3】棋盘行走【dfs】
分析 直接裸的DFS。 两个条件:判断能否走下一步,以及有没有走超过4步。 记得回溯。 喜闻乐见的裸题 上代码 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int n,m; int dx[5]={0,1,0,-1}; int dy[5]={-1,0,1,0}; bool ans,v[2500][2500],a[2500][2500]; char b[250...原创 2020-10-28 19:54:38 · 111 阅读 · 0 评论 -
【2020.10.26 SSL模拟赛T2】圆盘【最小表示法】
分析 这题一开始是没啥思路的。 后面听讲了原来核心是求最小表示。最小表示模板 两两枚举圆盘并比较后就可以做到优秀的 O(nm2log2m+n2m) O(nm^2\log_2m+n^2m)O(nm2log2m+n2m) 上代码 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int n,m,p,x[1001],f,b[1001]; int zxbs(int ..原创 2020-10-28 19:39:25 · 84 阅读 · 0 评论 -
【2020.10.26SSL普及模拟赛T1】魔法部落【等比数列求和】【逆元】
分析 等比数列求和。 众所周知 等比数列前n 项之和为:公比q ^( n + 1 ) /(公比q − 1 ) 也就是:3 ^( n + 1 ) /2 所以这样再快速幂+ m o d 可喜提60 p t s 而且会wa一些点 为什么呢? 因为x/y再mod 可能会出现负数 所以要逆元求解 可得: qqq^(n+1)/(q−1)mod(1e9+7)(n+1)/(q-1)mod(1e9+7)(n+1)/(q−1)mod(1e9+7) =q=q=q ^(n+1)∗(1e9+7+1)/2(n+1)*(1e9+7..原创 2020-11-01 09:51:22 · 118 阅读 · 0 评论 -
【SSL10.17模拟赛T3】相似度【图论】【dfs】
相似度 【问题描述】 小 G 通过摆放一些城市和道路构成了一个世界地图。趁着小 G 出去玩的时候,大 G 把小 G 的世界地图上的城市全部打乱并放在了原来这些城市所在的位置(并不是一一对应),又修改了一些道路。小 G 玩完回来后发现自己的东西被打乱了,感到非常生气,但是他又被一个更有趣的问题吸引了:被修改之后的世界地图与原来的世界地图的最大相似度是多少? (ps:相似度的定义为将城市还原后还有多少条道路和之前的道路相同) 【输入格式】 第一行为两个整数 n,m,表示一共有 n 个城市,m 条道路 接下来 m原创 2020-10-28 16:33:35 · 247 阅读 · 0 评论 -
【SSL1017模拟赛T2】蛋糕店
【问题描述】 最近小 G 新开了一家蛋糕店。开业第一天,一共来个 n 位顾客。由于小 G 非常懒,他每次只会接待一位顾客。每个顾客都想尽快的买到蛋糕,所以没有第 一个买到蛋糕的顾客都会有一个愤怒值。最终排在第 i 个位置的顾客 x 的愤怒值 为 i*a[x]。小 G 想要所有顾客的愤怒值之和最小。求最小的愤怒值之和。 【输入格式】 第一行为一个整数 n,表示顾客数。 第二行输入 n 个整数 a[1]…a[n] ,含义见题面 【输出格式】 一行一个整数 ans,表示最小的愤怒值之和。 【样例输入】 5 8 5原创 2020-10-28 16:17:41 · 104 阅读 · 0 评论