思路: 我们需要枚举展开多少条边 然后把上底面的点放到和下底面一个平面 然后算两点之间的距离 注意判断直线与线段是否有交点 #include <bits/stdc++.h> using namespace std; const double eps = 1e-8; const double inf = 1e20; const double pi = acos(-1.0); const int N = 1e5+7; //Compares a double to zero int sgn(doub…
也许更好的阅读体验 \(\mathcal{Description}\) 定义一个长为\(n\)的\(01\)序列\(A_1, A_2, \dots, A_n\)​的权值为\(\sum_{i=1}^n ((\sum_{j=1}^i A_j) \bmod 2)\),求有多少个长为\(n\)的\(01\)序列满足有恰好\(k\)个\(1\),且权值最大. 答案对\(10^9+7\)取模. \(\mathcal{Solution}\) 显然的两个贪心 最开始是\(1\)最优 除最开始的\(1\)外,之后…
传送门: 淳平的形态形成场 题解: 把a排序后,直接统计答案恰好为a[i]并不好做,可以统计答案>a[i]的方案数,设为\(f[i]\). 即不存在一个联通块,所有的权值都<=a[i]. 那么如果枚举j个在i之前的点,分成k个联通块,容斥系数是\((-1)^k\),选择系数\(C_i^j\),剩下的边随便乱选,\(2^{(n-j)*(n-j-1)/2}\). 设\(g[j]\)表示j个点,若有k个联通块,系数\((-1)^k\),的所有方案系数和. \(f[i]=\sum_{j=0}^iC_{…
链接:https://ac.nowcoder.com/acm/contest/308/E 来源:牛客网 tokitsukaze and Similar String 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 tokitsukaze获得了一个长度为n,由a-z小写字母组成的字符串. 我们定义两个字符串是相似的,当且仅当能通过多次以下操作,使得两个字符串相等.并且把需要操作的最小次数,…
链接:https://ac.nowcoder.com/acm/contest/308/D 来源:牛客网 tokitsukaze and Inverse Number 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 tokitsukaze给你一个长度为n的序列,这个序列是1到n的一种排列. 然后她会进行q次操作.每次操作会给你L R k这三个数,表示区间[L,R]往右移动k次. 移动一次的…
链接:https://ac.nowcoder.com/acm/contest/308/C 来源:牛客网 tokitsukaze and Number Game 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 tokitsukaze又在玩3ds上的小游戏了,现在她遇到了难关. tokitsukaze得到了一个整数x,并被要求使用x的每一位上的数字重新排列,组成一个能被8整除的数,并且这个数…
链接:https://ac.nowcoder.com/acm/contest/308/B 来源:牛客网 tokitsukaze and RPG 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 tokitsukaze最近沉迷一款RPG. 这个RPG一天有k分钟,每一天从第1分钟开始. 有n种怪物,第i种怪物每天第一次出现的时间为Xi分钟,第二次出现的时间为2Xi分钟,第三次出现的时间为3X…
LINK:牛牛与序列 (牛客div1的E题怎么这么水... 还没D难. 定义一个序列合法 当且仅当存在一个位置i满足 $a_i>a_,a_j<a_$且对于所有的位置i,$1 \leq a_i\leq k$ 人话解释:一个合法序列 每个数字都在1~k之间 且有两个相邻数字是递增关系两个相邻数字是递减关系. 发现我们枚举某两个位置递增递减再进行计数会重复 而且很难减掉重复方案.这个不能代表元容斥. 考虑总方案-不合法方案.发现不合法方案就两种不增,不降. 显然不增翻转一下就是不降 考虑求出不增的方…
题目链接:https://ac.nowcoder.com/acm/contest/375/A 分析:我写的时候竟然把它当成了DP....... 还建了个结构体DP数组,保存一二位,不知道当时脑子在抽啥... 事实上这题四重循环直接暴力就了过....... 在大佬博客里学到了一种只用三重循环的高级做法 看看最后一重循环吧,因为是从后往前的,只有满足第四个条件,就把now+1,等在前面遇到满足第3个条件的数,此时now的数目就是其后满足第四个条件数的个数,直接加到ans上面即可 #include<b…
目录 题目链接 题意 思路 代码 题目链接 传送门 题意 给你一棵树,然后把这棵树复制\(k\)次,然后再添加\(m\)条边,然后给你起点和终点,问你起点到终点的最短路. 思路 由于将树复制\(k\)遍后结点个数高达\(10^{10}\)个,因此不能直接复制跑. 我们注意到\(m\leq 50000\),那么与这\(m\)条边有关的结点最多只有\(2m\)个(记作关键点),那么我们可以考虑把这些点抠出来跑最短路,不同版本之间的点的边由于题目给的\(m\)条边因此不同版本的两结点之间的距离就是\(…