思维 技巧
flyzer
这个作者很懒,什么都没留下…
展开
-
二分
李煜东的书上写的二分非常的好。先说一下位运算这个:右移运算是向下取整,整数除法是向零取整。#include<bits/stdc++.h>using namespace std;int main(){ int a=3; cout<<a/2<<" "<<(a>>1)<<endl; //1 1 int b=-3; cout<<b/2<<" "<<(b原创 2021-06-03 22:40:34 · 149 阅读 · 0 评论 -
尺取法 POJ 3061
反复地推进区间的开头和末尾,来求取满足条件的最小区间的方法被称为尺取法。 ——《挑战程序设计竞赛》POJ 3061因为t最多变化n次,因此只需O(n)的复杂度就可以解决这个问题了。AC code:#include<iostream>#include<iomanip>#include<cstdio>#include<algor...原创 2018-10-23 22:58:48 · 242 阅读 · 0 评论 -
矩阵快速幂
参考博客:https://www.cnblogs.com/cmmdc/p/6936196.html https://blog.csdn.net/NEET_Champloo/article/details/77932006假如现在有一个n*n的方阵A。所谓方阵就是行数和列数相等的矩阵,先给出一个数M,让算矩阵A的M次幂,A^M.在此只要求计算并不需要去深究...原创 2018-10-22 23:52:33 · 112 阅读 · 0 评论 -
HDU 6228 思维 树上dfs
题目链接题意:给你一棵树,让你把这些树上的节点用M种颜色染,然后问你在最优的染色方案下,相同颜色点连接的最小边集的交集最大是多少。就是问一条边上的两端,如果上端的点数大于k,并且下端的点数小于k,那么这条边将计数。先用DFS求出每个点的子孙节点个数(包括自身),假设为x,那么它的上面点的个数为n-x,只要x>=k&&(n-x)>=k,ans++。#in...原创 2018-10-20 12:14:04 · 184 阅读 · 0 评论 -
CodeForces - 1038D Slime 思维
推荐一边个人认为比较好的博客:https://blog.csdn.net/qq_37594941/article/details/82589288题意:给出一个长度为n的数列,每个数都可以和左边的数或者右边的数结合(紧挨着的),结合后的结果为结合的数减去被结合的数得到的值,结合n-1次后,只剩下一个数,问这个数最大是多少。Solution:只要弄明白了下面这个事实,这个题就好做了:至少有一...原创 2018-11-02 18:58:05 · 247 阅读 · 0 评论 -
Codeforces Round #440 Div. 2 C. Maximum splitting
题目链接题意:求一个数能分解成为最多多少个合数。分析:我们希望分成的合数越小越好,而最小的合数是4,所以我们先按4分,不能整除4的话,我们进行分类讨论,把余数加到4上凑成合数就行了。#include<iostream>#include<iomanip>#include<cstdio>#include<algorithm>#inc...原创 2019-04-17 12:35:14 · 65 阅读 · 0 评论 -
codeforces 918 C
题目链接题意:有一个只包含'(',')','?'的字符串,'?'可以被当作'('或者')'。统计串s中所有的非空完美子串的数目。思维,模拟。看了两篇博客,有两种解题方法,实际上都差不多。第一种:(博客链接:https://blog.csdn.net/a302549450/article/details/83351238)#include<bits/stdc++.h>...原创 2019-05-10 12:13:39 · 99 阅读 · 0 评论