上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 67 下一页
摘要: 水题~。 const int N=10010; struct Node { string name; int grade; int rank; bool operator<(const Node &W) const { if(grade != W.grade) return grade > W.gr 阅读全文
posted @ 2021-04-19 15:23 Dazzling! 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 并查集裸题。 const int N=10010; int p[N]; int n,m,maxid; int find(int x) { if(x != p[x]) p[x]=find(p[x]); return p[x]; } int main() { cin>>n; for(int i=1;i< 阅读全文
posted @ 2021-04-19 15:14 Dazzling! 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 宽搜就完事了。 const int N=1e5+10; vector<int> g[N]; int dep[N],maxd; int n; void bfs(int root) { queue<int> q; q.push(root); dep[root]=1; while(q.size()) { 阅读全文
posted @ 2021-04-19 14:58 Dazzling! 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 水~。 将给定的点标记已访问,判断其他点是否还存在未标记访问的邻接点。若存在,说明剩余的点不孤立;否则剩余的全为孤立点。 const int N=10010; vector<int> g[N]; bool vis[N]; int n,m,q; bool dfs(int u) { for(int i= 阅读全文
posted @ 2021-04-19 14:50 Dazzling! 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 不妨假设第一个日期早于第二个日期(否则交换即可)。 这种求日期之间相差天数的题目有一个很直接的思路,即令日期不断加1天,直到第一个日期等于第二个日期为止,即可统计出答案。具体处理时,如果当加了一天之后天数d等于当前月份m所拥有的天数加1,那么就令月份m加1、同时置天数d为1号(即把日期变为下一个月的 阅读全文
posted @ 2021-04-17 22:07 Dazzling! 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 又是喜闻乐见的日期题。 枚举年份,构造回文日期和ABABBABA型的回文日期,判断构造出的日期是否合法。 注意构造出的日期不能和当前日期相等。 int month[2][13]={ {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31, 阅读全文
posted @ 2021-04-17 21:33 Dazzling! 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 线段树裸题。 单点修改+区间查询。 const int N=2e5+10; struct Node { int l,r; int maxv; }tr[N<<2]; int score[N]; int n,m; void pushup(int u) { tr[u].maxv=max(tr[lc].ma 阅读全文
posted @ 2021-04-17 17:06 Dazzling! 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 传递闭包裸题。 如果一头奶牛和其他$n-1$头奶牛的大小关系都确定了,那么该奶牛的排名可唯一确定。 或者说,比它强的奶牛的数量加上比它弱的奶牛的数量等于$n-1$,就可唯一确定该奶牛的名次。 const int N=110; bool g[N][N]; int n,m; void floyd() { 阅读全文
posted @ 2021-04-17 16:40 Dazzling! 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 刷表法。 对于某一个点$(i,j)\(,直接求出\)(i,j)\(所能到达的所有点,将能到达的点的方案数量加上\)(i,j)$的方案数量。 状态表示: \(f(i,j)\):达到点$(i,j)$的方案数。 状态转移: \[ f(i+x,j+y)+=f(i,j) \\ 其中,x+y \le w[i][ 阅读全文
posted @ 2021-04-17 15:45 Dazzling! 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 将单词表中所有单词建立一棵字典树,再利用 $cnt$数组统计字典树中以每个字母结尾的字符串的个数。因此,在接下来的多次询问中,只需要返回单词最后一个字母对应的$cnt$数组值即可。 const int N=5e5+10; int trie[N][26],cnt[N],idx; void insert 阅读全文
posted @ 2021-04-17 12:02 Dazzling! 阅读(21) 评论(0) 推荐(0) 编辑
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 67 下一页