摘要: 可以通过无限次的换车来完成旅程,每次换车又可以走大小为$1 \sim 10$的距离,完全背包裸题,即体积大小为$1 \sim 10$的每种物品均为无限个。 const int N=510; int f[N]; int a[N]; int n; int main() { for(int i=1;i<= 阅读全文
posted @ 2021-04-04 22:31 Dazzling! 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 又是图形输出题。 找规律代码如下。 int main() { int T; cin>>T; while(T--) { int a,b; cin>>a>>b; for(int k=0;k<b;k++) { for(int i=0;i<a/2;i++) { for(int j=0;j<i;j++) co 阅读全文
posted @ 2021-04-04 22:11 Dazzling! 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 通过传递性推导出尽量多的元素之间的关系的问题被称为传递闭包。 阅读全文
posted @ 2021-04-04 17:42 Dazzling! 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 传递闭包+乘法原理+高精。 变换具有传递性,如$2→3$,\(3→5\),则有变换$2→5$。 首先我们根据输入的变换规则构造一个图$G$,其顶点为$0 \sim 9$这$10$个数字,边$(X,Y)$ 权值为1表示规则$x→y$,否则为$0$。于是可以根据Floyd算法求出图$G$的传递闭包。那么 阅读全文
posted @ 2021-04-04 17:41 Dazzling! 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 爬楼梯水题~。 const int N=45; bool vis[N]; int f[N]; int n,m; int main() { cin>>n>>m; for(int i=0;i<m;i++) { int x; cin>>x; vis[x]=true; } f[1]=1; for(int i 阅读全文
posted @ 2021-04-04 15:24 Dazzling! 阅读(54) 评论(0) 推荐(0) 编辑
摘要: $PAT$时做过了,再做一遍,直接模拟即可。 输入保证四位数字不全相同。 int a[5]; int n; void get(int x) { for(int i=3;i>=0;i--) a[i]=x%10,x/=10; } int calc() { int res=0; for(int i=0;i 阅读全文
posted @ 2021-04-04 15:08 Dazzling! 阅读(48) 评论(0) 推荐(0) 编辑
摘要: \(\sum_{i=1}^{N-1}\sum_{j=i+1}^NA_iA_j=\sum_{i=1}^NA_i*(A_{i+1}+\cdots+A_N)\) const int N=2e5+10; int a[N]; LL sum[N]; int n; int main() { cin>>n; for 阅读全文
posted @ 2021-04-04 11:33 Dazzling! 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 水题~。 int n; bool isprime(int x) { if(x<2) return false; for(int i=2;i*i<=x;i++) if(x % i == 0) return false; return true; } bool palindrome(int x) { i 阅读全文
posted @ 2021-04-04 11:16 Dazzling! 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 由于正方形边上的目标不会摧毁,所以如果按照左图的形式来投放炸弹,实际只能摧毁$(R-1)\times(R-1)$个点,但如果按照右图的形式来投放炸弹,则能摧毁$R\times R$个目标,题目要求摧毁总价值最大的边长为$R$的正方型区域,显然按右图的形式来计算。 采用二维前缀和计算。 const i 阅读全文
posted @ 2021-04-04 11:07 Dazzling! 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 如果不考虑特殊区间,对于每个元素来说,既可以染成黑色从而得到$b_i$, 也可以染成白色从而得到$w_i$,当然最好是染成黑色和白色两者中较大的从 而得到$\max(b_i,w_i)$。 现考虑特殊区间,由于本题已保证$m$个区间两两不相交,因此可以单独考 虑每个区间,如果把区间染成同一种颜色后得到 阅读全文
posted @ 2021-04-04 11:03 Dazzling! 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 思路 将'G'看成$-1$,'R'看成$+1$,要求最长的子串,使得子串中‘G’和‘R'的数量相等,则转化为求两个下标$i$和$j$,使得前缀和$sum[j]-sum[i-1]=0$,即$sum[j] == sum[i-1]$。 开一个$pos$数组记录每个$sum[i]$第一次出现的位置,之后对每 阅读全文
posted @ 2021-04-04 10:19 Dazzling! 阅读(66) 评论(0) 推荐(0) 编辑