摘要:
原题链接 思路 1.任意一轮出牌,只有三种选择 2.每一轮的得分只与当前一轮出的牌和上一轮出的牌相关 由此我们可以设 \(dp[i][j]\) 为第 \(i\) 轮,出牌 \(j\) 的得分 3.由于扣分机制,扣的分数与扣的次数有关,所以我们再加一层 \(dp\) 代表扣的次数 code,注意细节 阅读全文
摘要:
原题链接 题解 一道思维题 由于闹钟是圆的,所以从任意一个分钟数调到另外任意一个分钟数最多要按多少次相当于从点0调到1~n-1任意一点最多要按多少次 可以把1~n看成一个一个点,就相当于单源最短路了 md,好巧妙 code #include<bits/stdc++.h> using namespac 阅读全文
摘要:
原题链接 题解 再结合代码应该就能看得懂了吧。。。 至于赛时怎么想出来的。我是观察样例得出来的 时间复杂度 \(O(2·t·\sqrt{n})\) code #include<bits/stdc++.h> #define ll long long using namespace std; inlin 阅读全文
摘要:
原题链接 题解 1.对于任意一点,只有被河蟹选中和没选中两种状态,变成了染色问题 对于任意一个染了白色的点,其周围的点必须是黑色 对于任意一个染了黑色的点,其周围的点必须是白色 所以初始点染黑色还是染白色答案都是一样的 2.任意两点之间不是绝对联通的,可能有多个图 code #include<bit 阅读全文
摘要:
原题链接 题解 1.添加几条边,使得对于任意节点,都有环存在,且所在最小环的大小皆大于3 2.看成有中心点的散发图,最优添加情况为叶子节点相连 3.如果两个叶子节点的父节点为lca,那么这两个叶子节点不能直接相连 4.看成若干个菊花,每朵菊花的花瓣都是叶子节点,同一朵花上的花瓣不能直接相连,所有叶子 阅读全文
摘要:
原题链接 题解 1.把分数中的除法用乘以逆元表示,在求模运算里的除法都可以用乘以逆元代替(如果除法的结果为整数),但是这里规定了可以用其表示,那就用其表示 2.读题 code #include<bits/stdc++.h> int mod=1e9+7; // 确保 mod 是一个整数 using n 阅读全文
摘要:
原题链接 题解 由于时间限制过于严苛,遂采用线性递推方式 \(p=k·i+b\) , \((1\leqslant b <r<p)\) \(k·i+b=0\) \((mod\ p)\) 同时乘上 \(i^{-1}\ b^{-1}\) \(k·b^{-1}+i^{-1}=0\ (mod\ p)\) \( 阅读全文
摘要:
原题链接 学习链接 题解 \(ax\ ≡\ 1\ (mod\ b) \implies ax\ =\ by+1 \implies ax-by\ =\ 1\ (y\in Z)\) 若 \(ax+by=c\) 有整数解,令 \(gcd(a,b)=e\) ,则有 \(a_1=\frac{a}{e}\) ,\ 阅读全文
摘要:
原题链接 题解 对于任意剩余塔,都可以表示为以某个塔结尾的等差数列 code #include<bits/stdc++.h> using namespace std; int h[1005]={0}; int dp[1005][40005]={0};//代表以塔i结尾,等差为j的种类 int hax 阅读全文
摘要:
原题链接 经过若干组数据发现贪心可行性后试图证明 请移步 code #include<bits/stdc++.h> using namespace std; int main() { int t; cin>>t; while(t--) { int n,ans=0; cin>>n; int x=2e9 阅读全文
