CSP集训题解 Summer已经完结了于是新开一个,而且旧的已经很卡了 9.9CSP-S短赛2(开小灶2) T1 元素周期表 看来是一种套路,将每个点对应的x,y坐标连边,在一个联通块内的就是可达的,那么答案就是联通块数减一 点击查看代码 #include <bits/stdc++.h> typedef long long ll;typedef unsi
Given a string s and an array of strings words, return the number of words[i] that is a subsequence of s. A subsequence of a string is a new string generated from the original string with some characters (can be none) deleted without changing the relative
1.为什么需要变量 1.1变量是程序的基本组成单位 2.变(变化)量(值)的介绍 变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)。 2.1变量使用的基本步骤 声明变量 int a; 赋值 a = 60; //应该
归并排序时间平均复杂度为O(nlogn)。归并排序是创建在归并操作上的一种有效的排序算法,其核心思想与快排相同,也是分治思想。 分治思想可分为三步走: 原问题分成子问题 递归处理子问题 子问题合并 时间复杂度对比图: 归并排序动图: 归并排序函数: void merge_sort (int a[
有时我们在写程序时会从命令行中直接读入参数,形如: int main(int argc,char**argv){ //your code here return 0; } 其实在vc2010 IDE中可以直接实现,不必每次生成可执行文件后用 cmd来执行。 在项目菜单下选择项目属性 -> 配置属性 -> 调试->命令参数,在”命令参数行“里填上额外附
实验目的 熟悉Keil,Proteus软件的使用 熟悉串行口的编程、应用 实验内容 使用其他软件编写串口通信界面 使用串口调试助手。需要安装虚拟串口驱动(Virtual Serial Port Driver),并安装串口助手设置串口参数 完成双机通信实验 完成电路图绘制 通过甲机的按键,控制甲、乙两机的
题面传送门 首先题面中那个\(y=1\)的数位dp部分分是诈骗,这题和数位dp没有半毛钱关系。 为啥SDOI两个T2都是算法诈骗题啊 首先考虑一个爆搜,爆搜三进制每一位是什么,然后转化成二进制。这个复杂度显然是\(O(n)\)的,不可接受。 但是实际上可以优化,我们考虑对于一个较低位的三进制数,其能
hasNextInt()方法是判断控制台接收是否为整形数字,而不是接收数据 nextInt()读取结果为一个int类型数据,返回int值
https://leetcode.cn/problems/remove-element/ 首先是自己想的铸币解法。先进行排序,那么目标数字就连续聚在一起。等快指针移动到最后一个目标值得下一个元素就开始进行赋值操作。然后快指针和慢指针不断同步地右移进行赋值操作,直到快指针移动到最后一个元素,两个指针都
目录最大异或和 最大异或和 题意: 给定一个非负整数序列 a,初始长度为 N。 有 M 个操作,有以下两种操作类型: A x:添加操作,表示在序列末尾添加一个数 x,序列的长度 N 增大 1。 Q l r x:询问操作,你需要找到一个位置 p,满足 l≤p≤r,使得:a[p] xor a[p+1] xor … xor a[N] xor x 最大,输出这个
为什么要写这个呢,因为RecyclerView的上拉加载不像ListView通过添加FooterView那么方便,很多通过addScrollListener的方式实现的太繁琐,需要添加各种标识,需要交互联动。 不想说废话了,最好的不是好的,适合的才是最好的,代码如下: public abstract class MyAdapter extends RecyclerVi
#include <stdio.h> struct student{ char name[12]; char number[9]; int score; }; struct student st[3]={{"zhang liang","19040301",87},{"li hong","18040302",92},{"yan feng","20040303&qu
#print(10/0) #ZeroDivisionError lst=[11,22,33,44] #print(lst[4]) #IndexError 索引从0开始 dic={'name':'张三','age':20} #print(dic['gender']) #KeyError #print(num) #NameError #int a=20 #SyntaxError #a=int('hello
class Solution: def minOperations(self, logs: List[str]) -> int: result=0 for i in range(0,len(logs)): if logs[i]=='../': if result>0:
Java基础 为什么要分数据类型? 优化存储空间,提高内存利用率。 Java有哪几种数据类型? Java分基本数据类型和引用数据类型。 基本数据类型(四类8种) 1.整数类型: byte int short long 2.浮点数(小数)类型: float double 3.字符类型: char
题面(骑士共存问题) 在一个 \(n \times n\) 个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示。棋盘上某些方格设置了障碍,骑士不得进入。 对于给定的 \(n \times n\) 个方格的国际象棋棋盘和 \(m\) 个障碍标志,计算棋盘上最多可以放置多少个骑士,使得它们彼此互不攻击。 对于
#include<stdio.h>int main(){ printf("sizeof int=%d\n", sizeof(int));} 结果:sizeof int=4 说明int占用4个字节,4×8(晶体管数量)=32位(二进制) 数据范围:若不考虑负数,位数为n,则数据范围为0——2的n次方-1(111,为7) 补码表示法:即求一个正数所对应的负数,从0开始到第一个1保持不变,1之后的全
https://leetcode.cn/problems/longest-palindrome/ 要生成最长回文串,所有出现了偶数次的字母都要添加。出现奇数次的字母就要添加出现次数最多的那个字母,其余出现次数非1的奇数次字母则添加 n-1 个 bool类型flag是用来标记是否已经添加最大奇数字母。 第一次的错误思路,以为
ZoneInfoFile package sun.util.calendar; import java.io.ByteArrayInputStream; import java.io.DataInput; import java.io.DataInputStream; import java.io.IOException; import java.io.StreamCorruptedException; import java.security.AccessController; import j
简述 如果某一问题存在很多重叠子问题,使用动态规划是非常有效的。 动态规划与贪心 贪心:每次都选择局部最优解 动态规划:每个状态都是由前一个状态推导得到 动态规划解题步骤 确定 dp数组 及下标的含义 确定递推公式 dp数组 初始化 确定遍历顺序 LeeCode 509:斐波那契数 题目描述
You are playing a game that contains multiple characters, and each of the characters has two main properties: attack and defense. You are given a 2D integer array properties where properties[i] = [attacki, defensei] represents the properties of the
题目: 一.交换 void swap(int* a, int* b) { int temp = *a; *a = *b; *b = temp; } void moveZeroes(int* nums,int numsSize) { if (numsSize == 1&&numsSize==0&&nums==null) return; for (int i = 0; i < numsSize; i++) {
01背包问题,每件物品都有放和不放这两种选择。 使用动态规划思想:有n件物品情况下的总价值最大背包和有n-1件物品情况下的总价值最大背包有关。 我也讲不大明白,对背包问题有兴趣的可以去这看看:https://zhuanlan.zhihu.com/p/93857890 #include<iostream> #include<bits/stdc++.h>
流程控制-break& continue break break在任何循环语句的主体部分,均可用 break控制循环的流程。 break用于强行退出循环,不执行循环中剩余的语句。( break语句也在 switch语句中使用)。 continue continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着
创建型:单例设计不友好 目录介绍 01.前沿简单介绍 02.单例对OOP不友好 03.隐藏类之间依赖 04.代码扩展性不友好 05.可测试性不友好 06.不支持有参构造函数 07.有何替代解决方案 01.前沿简单介绍 尽管单例是一个很常用的设计模式,在实际的开发中,我们也确实经常用到它,但是,有些人认