2小时
学习Java
标识符:
1.标识符可以由字母,数字,下划线和美元符组成,其数字不能打头
2.标识符不能是Java关键字和保留字,但可以包含关键字和保留字
3.标识符不能包含空格
4.标识符只能包含美元符,不能包含@,#等特殊字符
Java关键字
Java语言是强类型语言,强类型包含俩方面含义:
1.所有的变量必须先声明,后使用
2.指定类型的变量只能接受类型与之匹配的值
Java数据类型所占字节
Java语言转义字符
Java语言浮点数的俩种表示形式
1.十进制数,就是简单的浮点数,例如:5.12.51.2.。。,浮点数必须包含一个小数点,否则会被当成int类型处理
2.科学计数法形式例如,5.12e2即5.12*10^2
注意,只有浮点类型的数值才可以用科学计数法表示
下划线分隔
当程序的数值位数特别多的时候,Java可引用下划线来进行分隔,在整型或浮点型数值中都可以用。
Java基本类型的转换
表达式类型的自动提升
1.所有的byte类型,short类型,char类型将被提升到int类型
2.整个算术表达式中的数据类型自动提升到与表达式最高等级操作数同样的类型,上图位于箭头右边类型高于左边类型等级
2小时
学习背包
卡在f[i][v] = max(f[i-1][v], f[i-1][v-c[i]]+w[i])这里许久,一开始一直没有想通,因为之前做这种题目我都是用一个结构体来写的,结构体内包含价值,重量以及平均价值(价值除以重量),然后按平均价值大小排序后一依次放入背包,直至装不下。所以思维有些不活跃。学了这个之后会感觉相比之前的方法,这样要来得简单多了。
3小时
刷题
这里就说一下尝试几次没有过的题吧
这个题目明明和之前俩道题目差不多,只是把重量换成了浮点数,所以我将浮点数乘以一百强制转换成为整型来做,但是还是错误了,不知道为什么。
未ac代码
#include<stdio.h>
#include<string.h>
int n;
double m;
int v[100010],w1[100010];
double w[100010];
int f[100010];
int max(int a,int b)
{
if(a>b)
return a;
return b;
}
int main()
{
int t;
while(~scanf("%d",&t))
{
while(t--)
{
memset(f,0,sizeof(f));
memset(w1,0,sizeof(w1));
scanf("%lf%d",&m,&n);
int M=(int)(m*100);
int i,j;
for(i=1;i<=n;i++)
{
scanf("%d%lf",&v[i],&w[i]);
w1[i]=(int)(w[i]*100);
}
for(i=1;i<=n;i++)
for(j=M;j>=w1[i];j--)
f[j]=max(f[j],f[j-w1[i]]+v[i]);
printf("%d\n",f[M]);
}
}
return 0;
}
```
一小时
刷网课
数据结构与算法
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200228221759668.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NoZWVwX3ByaW5jZXNz,size_16,color_FFFFFF,t_70)