![](https://img-blog.csdnimg.cn/81b0647c7b2f4bfb829f77435f7f0935.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
洛谷
文章平均质量分 58
675
x-d-xxh
这个作者很懒,什么都没留下…
展开
-
CF1391C Cyclic Permutations(思维,找规律)
通过找规律发现,只有当一个排列中的一个数的两边都有1个比他大的数时才可能有环,比如说312,1432,如果没有,就不可能有环,比如1234。n = 5, 共有120种,120 - 104 = 16 =n = 6, 共有720种,720 - 688 = 32 =我们又知道,一个数所有的排列有n!n = 4, 共有24种,24 - 16 = 8 =n = 3, 共有6种, 6 - 2 = 4 =n = 5, 有104种,n = 6, 有688种,n = 4, 有16种,n = 3, 有2种,原创 2022-09-22 16:08:11 · 229 阅读 · 0 评论 -
P2802 回家(bfs + 贪心思维)
原题链接 题目 思路 看到求最短这种和数据范围 n<=9n <= 9n<=9 首先就要想到 BFSBFSBFS. 然后没走一步需要看下一步 是否越界 血量够不够(当血量为 0 时就直接死亡了,所以血量必须维持在 1 以上,否则即使是血量为 0时到家了,也会死在家门口) 本题还有一个坑点,就是他可能不能直接走回家,有可能会要走重复的路(需要去捡一个鼠标再回来), 所以本题的难点 就在于如何判重,通过传统的 bool 数组判重肯定不行,那么就想,对于每个格子,一定是以更优的状态到它才有重原创 2022-01-18 14:44:50 · 624 阅读 · 0 评论 -
CF1611A Make Even
原题链接 题意 给一个数字,每次可以翻转前缀,问翻转几次可以使这个数变成一个偶数。 思路 如果本身就是偶数,就不用翻转 如果首位是偶数,翻一次 如果中间有偶数,那么就先把中间那个数翻到首位,然后再翻到末尾,共2次 如果中间没有偶数,就是-1 代码 #include<bits/stdc++.h> using namespace std; int main() { int t; cin >> t; while (t -- ) { string s; cin >>原创 2021-12-26 15:52:27 · 85 阅读 · 0 评论 -
CF1569B Chess Tournament
原题链接 题意 思路 通过举例子发现,至少赢一次的人数小于等于2同时不等于0时,是NO, 还有的至少赢一次的就赢一次,赢另一个至少赢一次的人,剩余的全部都平局即可。 代码 #include<bits/stdc++.h> using namespace std; const int N = 100; int ans[N][N]; int main() { int t; cin >> t; while (t -- ) { memset(ans, -1, sizeof ans原创 2021-12-21 12:50:41 · 269 阅读 · 0 评论 -
CF1603B Moderate Modular Mode
原题链接 题意 思路 找规律,发现 当 x=yx = yx=y 时,输出xxx就行了 当 x>yx > yx>y 时,输出 x+yx + yx+y 就可以了,这样可以满足 (x+y) mod y=b, b mod (a + b)=b(x + y)\ mod\ y = b,\ b\ mod\ (a\ +\ b) = b(x+y) mod y=b, b mod (a&nbs原创 2021-12-18 15:46:06 · 375 阅读 · 0 评论 -
通师高专科技创新社周赛Round 3
P1634 禽兽的传染病 思路 1.按题意模拟即可 坑点 1.要开long long 代码 #include<bits/stdc++.h> #define int long long using namespace std; signed main() { int x, n; cin >> x >> n; int sum = 1; for (int i = 1; i <= n; i ++ ) { sum += (sum * x); }原创 2021-12-17 17:01:24 · 204 阅读 · 0 评论