java的数据类型 基本类型 数值类型 整数类型:byte int shout long 浮点数类型:foult double 字符型:char boolean类型 只反映正误, 字符串 String不是关键字,是类 (为了便于计算机区分,long型数值后面加“L,float型数值后加“F”) 引用数据类型 类 接口 数组 二进制数值以0b开头,八进制数值
题目链接 思路:因为所有点的权值是互不相同的,并且概率\(0 < p_x < 1\),也就是所有的点都会被选到。所以用\(dp[i][j]\)来表示节点\(i\)权值为\(j\)的概率。首先考虑叶子节点,叶子节点都没有子节点所以他们的权值是确定的,\(dp[i][j] = [i = val]\);再考虑只有一个子节点的节点,那
这篇的主要目的是用一些例子展示如何使用Func。 Func其实是一个内置的委托,它带来了一些函数式编程特性,并有助于减少代码冗长。 Func只能包含0 ~ 16个输入参数,且必须有一个返回类型。(Func委托有16个重载。) 例子一 //1.FuncExp1:不带参数的方法 static string GetMessag
int GetMax(int arr[], int left, int right) { if (left == right) return arr[right]; int mid = left + ((left-right)>>1); int leftMax = GetMax(arr, left, mid); int rightMax = GetMax(arr, mid+1, right); return leftMax > right
面试算法题 dfs相关 全排列 #include<bits/stdc++.h> using namespace std; const int N = 10; //用一个path数组来存储每次到底层的路径 int path[N]; //用一个布尔数组来存储每次已经遍历的点,默认是false bool st[N]; int n; //u表示当前的层数 void dfs(int u) {
递归函数的使用: public static int i = 0; //定义一个静态变量 public static void Test()//定义静态函数 { Console.WriteLine("从前有座山"); Console.WriteLine("山上有座庙"); Console.WriteLine("庙里有一个老和尚,在该小和
\(\textbf{G.}\) 设 \(f(l,r),g(l,r)\) 分别表示区间 \([l,r]\) 对应的树的数量及森林的数量. 则: \(f(l,r)=\sum\limits_{k=l+1}^{r}[k=r\text{ or }p_{k+1}>p_{l+1}]f(l+1,k)*g(k+1,r)\), \(g(l,r)=\sum\limits_{k=l}^{r}[k=r\text{ or }p_{k+1}>p_l]f(l,k)g(k+1,r)\). 解释
/// <summary> /// 获取Excel列名 /// </summary> /// <param name="columnNumber">从1开始的数字</param> /// <returns>列的序号,如:A、B、C、AA、BB</returns> public static string GetExcel
动态规划当前状态和前一状态相关。到m阶楼梯的方法等于到m-1和m-2的方法相加 #include<iostream> #include<bits/stdc++.h> #include<cstdio> using namespace std; int n; int cnt[25]; int main() { scanf("%d", &n); cnt[0] = 1; cnt[1] = 1; for (int
#include <stdio.h> #include <string.h> #include "string" using namespace std; //把大数的高位/低位翻转 string reverseString(string str) { int iLen = str.length(); if (iLen == 0) return str; for(int i = 0; i< i
如果用传统的方法,先把所有的数加起来再除以个数,求和时可能溢出,所以不能用这种方法。 #include <stdio.h> #include <string.h> #include "string" using namespace std; double getAver(unsigned int *p, int iSize) { double dbAver = 0; if(iSize == 0) {
非传统题不做。 Day1 T1 Jail 给定一棵 \(n\) 个点的树,有 \(m\) 个人,第 \(i\) 个人从 \(s_i\) 出发要到 \(t_i\),每次可以指定一个人走一条边。问是否存在一种方案让每个人都到 \(t_i\),且满足任何两个人不同时出现在同一个节点。 \(m \leq n \leq 1.2 \times 10^5\),\(s_i\) 互不相
题目 原题地址:走楼梯 题目编号:NC235911 题目类型:递推 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 1.题目大意 走楼梯,还需要走 n 阶。每次可走1阶或者2阶楼梯,问共有多少种不同的方法。 2.题目分析 a[i] = a[i-1] + a[i-2] 3.题目代码 #include <bit
[NOIP2014 提高组] 飞扬的小鸟题解 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏。玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙。如果小鸟一不小心撞到了水管或者掉在地上的话,便宣告失败。 为了简化问题,我们对游戏规则进行
题目传送门。 考虑建立虚树然后再上面搞树形 DP。 于是这道题就变成分讨题。 设 \(f_i\) 表示 \(i\) 子树内的答案。若 \(f_i=1\),表示 \(i\) 子树内的特殊点可以被一条链覆盖,且 \(i\) 可以作为链的开头。若 \(f_{i}=1\),表示 \(i\) 子树内的点可以被一条链覆盖,但 \(i\) 不能作为链
小C语言--词法分析程序 Description 小C语言文法 1. <程序>→<main关键字>(){<声明序列><语句序列>}2. <声明序列>→<声明序列><声明语句>|<声明语句>|<空>3. <声明语句>→<标识符表>;4. <标识符表>→<标识符>,<标识符表>|<标识符>5. <语句序列>→<语
板子就不说了。 P2786 英语1(eng1)- 英语作文 红黑树 map 随便做,用一个 map 存下字符串对应的值,一个字符一个字符读入,然后判断, 如果不是数字并且不是字母,说明空格或者符号,处理答案。 /** * author: TLE_Automation * creater: 2022.9.7 **/ #include<cmath> #include<queue> #inc
#include "stdafx.h" #include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> char DecPwd[255]={0}; char xlat[] = { 0×64, 0×73, 0×66, 0×64, 0x3b, 0x6b, 0×66, 0x6f, 0×41, 0x2c, 0x2e, 0×69, 0×79, 0×65,
C++基础 1. C/C++内存有哪几种类型? C中,内存分为5个区:堆(malloc)、栈(如局部变量、函数参数)、程序代码区(存放二进制代码)、全局/静态存储区(全局变量、static变量)和常量存储区(常量)。此外,C++中有自由存储区(new)一说。全局变量、static变量会初始化为零,而堆和栈上的变量是随机的,不确定
6-1 递归法求Fibonacci数列第n项的值 这道题就是写一个简单的递归函数即可 int fun( int n ){ if( n == 1 || n == 2 ) return 1; return fun(n-1) + fun(n-2); } 6-2 分治法求解金块问题 这道题就是典型的分治 [l,r],区间的中点是mid,那么a[l,r]的最小值就是min( a[l,mid]
#include<iostream> using namespace std; bool p(int a){ for(int i=2;i<=a-1;i++) if(a%i==0)return false; return true; } int main(){ int n; cin>>n; int sum=0,sump=0; for(int i=2;i<=n-1;i++){ if(p(i)){
贴个板子,以备复习 点击查看代码 #include<cstdio> #include<cstdlib> #include<algorithm> #include<unordered_map> #include<cmath> #define mod 998244353 #define maxn 400010 #define ll long long #define it unordered_map<ll,int>::iterator
DP + 最短路 + 哈希 G - String Fair (atcoder.jp) 题意 给若干个只包含小写字母的长度<=3 的字符串 \(T_i\),每个字符串有权值 构造一个非空字符串 S,若 S 中包含上述子串,则加上这个子串的权值,求 S 的最大权值和 思路 由于 \(T_i\) 的长度不超过 3,所以对于当前的 S,若向后面再加一个
一 插入排序 时间复杂度 O(n^2) 空间复杂度O(1) 稳定性:稳定 //插入排序 public static void inSort(int[] arr){ for (int i = 0; i < arr.length; i++) { int tmp=arr[i]; int j = i+1; for (; j >=0 ; j--) { if
一、整型数组输入: (很简单)在终端的一行中输入固定数目的整型数字,并存到数组中,中间以空格分隔。 示例: 3 1 2 3 int n; cin >> n; vector<int> nums(n); for (int i = 0; i < n; ++i){ cin >> nums[i]; } (重难点)在终端的一行中输入非固定数目的整型