题解列表

筛选

17行代码解决

如果第i+k个前缀和第i个前缀和的余数相等,那么区间(i,i+k)是k的倍数```cpp#includeusingnamespacestd;constintnmax=1e5+5;longlongans,n,k,cnt[nmax],sum;intmain(){cin>>n>>k;cnt[0]=1;for

普普通通的动态规划

解题思路:先把月份和天数换算成一年第几天,然后从小到大排序。然后进行动态规划,dp[i][j]表示选到第i个为止时金额j是否能取到,last代表第i个之前的最近的距离i时间差大于等于k的序号。如果没有last就等于0。状态转移方程:dp[i][j]=dp[i-1][j]|(j>=a[i].v?dp[l

单源dijkstra算法就行

解题思路:就单源朴素dijkstra算法,时间复杂度O(n^2+m)本题数据能直接过,如果数据卡严一点就用堆优化,时间复杂度就是O(mlogn)注意事项:注意当n=1的时候加个特判参考代码:#include#defineintlonglong#definepiipair<

就最基本的二分吧,模板题

摘要:解题思路:注意事项:参考代码:#include <bits/stdc++.h> #define int long long #define pii pair<int,int> #define f……

从最高位开始搜索,dfs + 贪心

摘要:解题思路:由于本题数据很小,所以不考虑数位dp,直接枚举所有情况。当然也不是无脑枚举每一位+1,+2,+3……我们发现最高位肯定越大越好,所以直接每次都使得最高位最大,如果+和-两种操作都能满足将这一……

#C++2040——同学的等待

*******************************************************************************************************************下课后第一件事情是干什么?当然是干饭啦!不过干饭前我们先思考一个问题——

无脑暴力就行

摘要:解题思路:时间复杂度O(nm),这样的数据范围下直接暴力就行注意事项:参考代码://表示颜色的数字不超过10^5的正数,1<=n<=10^4,1<=m<=10^4。#include<bits/stdc……

素数回文 C++

####解题思路:####参考代码:```cpp#includeusingnamespacestd;boolis_prime(intn){//判断素数if(na>>b;for(inti=a;i