说明 看《C++ Primer Plus》时整理的学习笔记,部分内容完全摘抄自《C++ Primer Plus》(第6版)中文版,Stephen Prata 著,张海龙 袁国忠译,人民邮电出版社。只做学习记录用途。 目录说明5.1 for 循环5.1.1 for 循环格式5.1.2 递增运算符(++)和递减运算符(--)5.1.3 递增/递减运算符和解除引用运
A:洞穴 不是很懂,但是跑了一遍kruskal就过了 //-------------------------代码---------------------------- //#define int ll const int N = 200; int n,m; int dist[N][N]; struct node { int a,b,w; bool operator<(const node & x) const { return w < x.w
#输出7的倍数 #!bin/bash num=0 #注意num的 后面 while(($num<=500)) do if (($num%7==0)) #注意if后面需要加上空格,而且有两层括号 then echo $num fi let "num++" done
A:一组长度为n 的排列,问交换多少次,能让前m个数变成[1,m]中的数 输出前 m 个数中有多少个比 m 大的就可以了 //-------------------------代码---------------------------- //#define int ll const int N = 1e5+10; int n,m; void solve() { cin>>n>>m; int ans = 0;
题意: 给定每个区间是不是连通块,还原这棵树。(\(n\leqslant 2000\)) 题解: 我肯定是做不出来,也不理解是怎么想的。不如直接讲做法,然后证明正确性,也是对 wc 题解的补充。 先贴个代码: #include<bits/stdc++.h> using namespace std; const int maxn=2e5+10; const int mod=1e9+7; #def
1. switch语句 1.1 switch语句结构(掌握) 格式 switch (表达式) { case 1: 语句体1; break; case 2: 语句体2; break; ... default: 语句体n+1; break; } 执行流程: 首先计算出表达式的值 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇
while 循环和 if 条件分支语句类似,即在条件(表达式)为真的情况下,会执行相应的代码块。不同之处在于,只要条件为真,while 就会一直重复执行那段代码块。 语法格式: while 条件表达式: 代码块 代码块:指的是缩进格式相同的多行代码,不过在循环结构中,又称为循环体。 执行的具体流程:首先
快速排序 步骤 确定分界点:q[l], q[(l+r)/2], q[r], 随机 调整区间 递归处理 void quick_sort(int q[], int l, int r) { if (l >= r) return; //递归结束条件 int i = l - 1, j = r + 1, x = q[l + r >> 1]; //定义i, j指针, 确定分界点x(一般取中间值) while (i
While循环控制器应用之遍历获取文件参数 by: 授客 QQ:1033553122 测试环境 JMeter-5.4.1 应用 实现单线程在单次迭代内遍历获取文件参数 说明:上图仅给出关键配置信息 注意: CSV配置元件放循环内,每循环一次就会取一次参数值 不管CSV配置元件位于请求采样器上方,还是下方,都会优按CSV
第一节 分支结构 1、if分支的写法有几种,各有什么特点? if(){} if(){} else{} if(){} else if(){} else if(){} ... else{} 2、switch分支的格式、执行流程是怎么样的 switch(表达式){ case 值1:
1007 Even Tree Split 先考虑最简单的情况,如下图的边\((3,4)\),我们把这条边切掉,最后会留下一部分的点数为2,另一部分的点数依然是偶数。 进一步思考可以知道,对于边\((u,v)\),只要v子树的点数是偶数,这条边就可以切除。 再进一步,统计所有可以切除的边的数量,可以知道,只要从中选择任意多
显然只需要考虑 \(k\vert n\)。如果直接维护是 \(O(nd(n)\log n)\) 的,很寄。 可以证明如果 \(\frac{n}{k}\) 不是素数则不优。这个很好理解,比如对于 \(n=12,k=2,6\),所有 \(k=2\) 的方案一定可以被三个 \(k=6\) 的走法完全覆盖,而且这三个走法平均数还和这个 \(k=2\) 方案一样,那么只
更新记录 转载请注明出处。 2022年8月21日 发布。 2022年8月18日 从笔记迁移到博客。 分支结构(Branching) if语句(if Statement) if(条件) { #code } 实例: $userInput = Read-Host "Input Number"; if([int]$userInput -eq 666) { "Panda666.com" | Out-Default; } if-else
题传 做完 CF1422F 再做这道题就肥肠有感觉了。 如果你不想再看一题那么我就无耻推销一下 我的题解。 \[\text{————————我是分割线————————} \]请确保你已经知道了 CF1422F 的做法。 简化题意:多次询问,求 \(\sigma_0 (\prod_{i=l}^r a_i)\)。 我会积性函数线性筛
最近在看Virtus Creative Hub - YouTube的UE4蓝图教程,这个教程最大的特点是美式教程(I Guess)的简单和啰嗦,很多地方牺牲了软件工程的原则来让理解教程更加简单,fine,可以理解 但在UE4 Tutorial - For Loop With Delay - YouTube这期教程里,用堆砌delay蓝图来实现技能冷却就实在让人蚌埠
1 功能 按键提示音:用户按下独立按键时,蜂鸣器发出提示音,同时将按键值显示在数码管上。 2 原理图 3 参考程序 3.0 主程序 #include <REGX52.H> #include "Nixie.h" #include "Buzzer.h" #include "Key.h" unsigned char KeyNum; void main() { Nixie(1,0); //
CF1720A. Burenka Plays with Fractions 给出两个分数 $ \dfrac{a}{b}$ 和 \(\dfrac{c}{d}\) ,你每次操作能够选择其中一个分数的分子或分母,将其乘上任意一个整数(当然不能对分母乘 \(0\))。要求求出能够使两个分数相等的最小操作次数。 分类讨论题。 考虑证明最多操作次数不超过两
啊~,本周的第一个暴零 所罗门王的宝藏 \(solution\) 第一眼的时候完全没有想到是图论,当然暴零不是这个原因 把行和列进行连边,因为行i的旋转次数+列j的旋转次数一定等于\(c_{i,j}\),所以bfs一遍,如果无法同时满足\(a_i+b_j=w_{i,j}\),\(a_{i1}+b_{j1}=w_{i1,j1}\),则不行,否则可以 AC C
1. 快速排序——分治 # 算法原理: 在给定序列找到一个点x使得x左边区间数都小于x,右边区间数都大于x # 步骤: 确定分界点 随机,可以是第一个数 调整区间 使左边都小于分界点,右边都大于分界点 递归处理左右两段 递归停止的条件if(l >= r) return;即区间里没有数或只有1个数就
在线编程常见输入输出 题目链接 1. 输入包括两个正整数a,b(1 <= a, b <= 1000),输入数据包括多组,输出a+b的结果 #include <iostream> using namespace std; int main(){ int a,b; while (cin >> a >> b){ cout << a+b << endl; } return 0; } whil
感觉挺一眼的啊? 众所周知如果序列 \(i\) 要通过相邻两项交换变成 \(p_i\),那么交换次数就是 \(\sum_{i<j}[p_i>p_j]\),或者说线段 \((i,p_i)\) 相交的对数。 于是一个很 naive 的想法就是枚举最终序列的黑白状态,但是这样显然行不通。 一看数据范围,\(n=2000\),是不是能在上面做点手脚
001、 #include <stdio.h> int main(void) { unsigned int x; printf("x = "); scanf("%u", &x); // 输出整数类数据 int count = 0; while(x) { if(x & 1U)
本题如下:(链表:https://leetcode.cn/problems/happy-number/) 题目:编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程
题目链接:http://oj.tfls.net/p/83 写法一:找到第一个k和最后一个k的位置,区间长度=尾地址-首地址+1; #include<bits/stdc++.h> using namespace std; int ans; int a[10000010]; //返回第一个p的位置,如不存在p,返回0 int bs1(int l,int r,int p){ ans=0; //答案初始化为0
Hi,我是OIer一枚。 我太弱了 题目链接: Kattis 官网 VJudge 镜像题 题面 问海岸的长度和。 其中,岛中湖,岛中湖中岛……不算。 思路 我们在整个图外面加一圈 $ 0 $,这样我们就能轻松处理岛了。 从最外圈遍历 $ 0 $ ,遍历到的都是海。 然后,对于每块海,看它周围有几个陆地。 每一个陆地