MySql练习+加源代码
一、设有一个数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。
四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。
表1-1数据库的表结构
表(一)Student (学生表)
属性名 |
数据类型 |
可否为空 |
含 义 |
Sno |
varchar (20) |
否 |
学号(主码) |
Sname |
varchar (20) |
否 |
学生姓名 |
Ssex |
varchar (20) |
否 |
学生性别 |
Sbirthday |
datetime |
可 |
学生出生年月 |
Class |
varchar (20) |
可 |
学生所在班级 |
表(二)Course(课程表)
属性名 |
数据类型 |
可否为空 |
含 义 |
Cno |
varchar (20) |
否 |
课程号(主码) |
Cname |
varchar (20) |
否 |
课程名称 |
Tno |
varchar (20) |
否 |
教工编号(外码) |
表(三)Score(成绩表)
属性名 |
数据类型 |
可否为空 |
含 义 |
Sno |
varchar (20) |
否 |
学号(外码) |
Cno |
varchar (20) |
否 |
课程号(外码) |
Degree |
Decimal(4,1) |
可 |
成绩 |
主码:Sno+ Cno |
表(四)Teacher(教师表)
属性名 |
数据类型 |
可否为空 |
含 义 |
Tno |
varchar (20) |
否 |
教工编号(主码) |
Tname |
varchar (20) |
否 |
教工姓名 |
Tsex |
varchar (20) |
否 |
教工性别 |
Tbirthday |
datetime |
可 |
教工出生年月 |
Prof |
varchar (20) |
可 |
职称 |
Depart |
varchar (20) |
否 |
教工所在部门 |
表1-2数据库中的数据
表(一)Student
Sno |
Sname |
Ssex |
Sbirthday |
class |
108 |
曾华 |
男 |
1977-09-01 |
95033 |
105 |
匡明 |
男 |
1975-10-02 |
95031 |
107 |
王丽 |
女 |
1976-01-23 |
95033 |
101 |
李军 |
男 |
1976-02-20 |
95033 |
109 |
王芳 |
女 |
1975-02-10 |
95031 |
103 |
陆君 |
男 |
1974-06-03 |
95031 |
表(二)Course
Cno |
Cname |
Tno |
3-105 |
计算机导论 |
825 |
3-245 |
操作系统 |
804 |
6-166 |
数字电路 |
856 |
9-888 |
高等数学 |
831 |
表(三)Score
Sno |
Cno |
Degree |
103 |
3-245 |
86 |
105 |
3-245 |
75 |
109 |
3-245 |
68 |
103 |
3-105 |
92 |
105 |
3-105 |
88 |
109 |
3-105 |
76 |
101 |
3-105 |
64 |
107 |
3-105 |
91 |
108 |
3-105 |
78 |
101 |
6-166 |
85 |
107 |
6-166 |
79 |
108 |
6-166 |
81 |
表(四)Teacher
Tno |
Tname |
Tsex |
Tbirthday |
Prof |
Depart |
804 |
李诚 |
男 |
1958-12-02 |
副教授 |
计算机系 |
856 |
张旭 |
男 |
1969-03-12 |
讲师 |
电子工程系 |
825 |
王萍 |
女 |
1972-05-05 |
助教 |
计算机系 |
831 |
刘冰 |
女 |
1977-08-14 |
助教 |
电子工程系 |
1、查询Student表中的所有记录的Sname、Ssex和Class列。
2、查询教师所有的单位即不重复的Depart列。
3、查询Student表的所有记录。
4、查询Score表中成绩在60到80之间的所有记录。
5、查询Score表中成绩为85,86或88的记录。
6、查询Student表中"95031"班或性别为"女"的同学记录。
7、以Class降序查询Student表的所有记录。
8、以Cno升序、Degree降序查询Score表的所有记录。
9、查询"95031"班的学生人数。
10、 查询Score表中的最高分的学生学号和课程号。(子查询或者排序)
11、查询每门课的平均成绩。
12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
13、查询分数大于70,小于90的Sno列。
14、查询所有学生的Sname、Cno和Degree列。
15、查询所有学生的Sno、Cname和Degree列。
16、查询所有学生的Sname、Cname和Degree列。
17、 查询"95033"班学生的平均分。
18、假设使用如下命令建立了一个grade表:
create table grade(low int(3),upp int(3),rank char(1))
insert into grade values(90,100,'A')
insert into grade values(80,89,'B')
insert into grade values(70,79,'C')
insert into grade values(60,69,'D')
insert into grade values(0,59,'E')
现查询所有同学的Sno、Cno和rank列。
19、 查询选修"3-105"课程的成绩高于"109"号同学成绩的所有同学的记录。
20、查询score中选学多门课程的同学中分数为非最高分成绩的记录。
21、查询成绩高于学号为"109"、课程号为"3-105"的成绩的所有记录。
22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
23、查询"张旭"教师任课的学生成绩。
24、查询选修某课程的同学人数多于5人的教师姓名。
25、查询95033班和95031班全体学生的记录。
26、 查询存在有85分以上成绩的课程Cno.
27、查询出"计算机系"教师所教课程的成绩表。
28、查询"计算机系"与"电子工程系"不同职称的教师的Tname和Prof。
29、查询选修编号为"3-105"课程且成绩至少高于选修编号为"3-245"的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。
30、查询选修编号为"3-105"且成绩高于选修编号为"3-245"课程的同学的Cno、Sno和Degree.
31、 查询所有教师和同学的name、sex和birthday.
32、查询所有"女"教师和"女"同学的name、sex和birthday.
33、 查询成绩比该课程平均成绩低的同学的成绩表。
34、查询所有任课教师的Tname和Depart.
35 、查询所有未讲课的教师的Tname和Depart.
36、查询至少有2名男生的班号。
37、查询Student表中不姓"王"的同学记录。
38、查询Student表中每个学生的姓名和年龄。
39、查询Student表中最大和最小的Sbirthday日期值。
40、以班号和年龄从大到小的顺序查询Student表中的全部记录。
41、查询"男"教师及其所上的课程。
42、查询最高分同学的Sno、Cno和Degree列。
43、查询和"李军"同性别的所有同学的Sname.
44、查询和"李军"同性别并同班的同学Sname.
45、查询所有选修"计算机导论"课程的"男"同学的成绩表。
代码:
USE exam;
-- 创建表
-- 学生表
CREATE TABLE student(
sno VARCHAR(20) NOT NULL PRIMARY KEY,-- 学生学号
sname VARCHAR(20) NOT NULL,-- 学生姓名
ssex VARCHAR(20) NOT NULL,-- 学生性别
sbirthday date, -- 学生出生年月
class VARCHAR(20)-- 所在班级
);
-- 老师表
CREATE TABLE teacher(
tno VARCHAR(20) NOT NULL PRIMARY KEY,-- 老师编号
tname VARCHAR(20) NOT NULL,-- 老师姓名
tsex VARCHAR(20) NOT NULL,-- 老师性别
tbirthday date,-- 老师出生年月
prof VARCHAR(20),-- 职称
depart VARCHAR(20) NOT NULL-- 所在部门
);
-- 课程表
CREATE TABLE course(
cno VARCHAR(20) NOT NULL PRIMARY KEY,-- 课程号
cname VARCHAR(20) NOT NULL,-- 课程名称
tno VARCHAR(20) NOT NULL,-- 教工编号
FOREIGN KEY (tno) REFERENCES teacher(tno) -- 外键
);
-- 成绩表
CREATE TABLE score(
sno VARCHAR(20) NOT NULL, -- 学生编号
cno VARCHAR(20) NOT NULL, -- 课程编号
degree DECIMAL(4,1),-- 成绩
CONSTRAINT fk FOREIGN KEY (sno) REFERENCES student(sno),-- 学生外键
CONSTRAINT fk1 FOREIGN KEY (cno) REFERENCES course(cno),-- 课程外键
PRIMARY KEY (sno,cno)
);
-- 18题grade表
create table grade(low int(3),upp int(3),rank char(1));
insert into grade values(90,100,'A');
insert into grade values(80,89,'B');
insert into grade values(70,79,'C');
insert into grade values(60,69,'D');
insert into grade values(0,59,'E'); -- 录入信息
-- 录入学生表信息
INSERT INTO student VALUES
('','曾华','男','1977-09-01',''),
('','匡明','男','1975-10-02',''),
('','王丽','女','1976-01-23',''),
('','李军','男','1976-02-20',''),
('','王芳','女','1975-02-10',''),
('','陆君','男','1974-06-03','');
-- 录入老师的信息
INSERT INTO teacher VALUES
('','李成','男','1958-12-02','副教授','计算机系'),
('','张旭','男','1969-03-12','讲师','电子工程系'),
('','王萍','女','1972-05-05','助教','计算机系'),
('','刘冰','女','1977-08-14','助教','电子工程系');
-- 录入课程信息
INSERT INTO course VALUES
('3-105','计算机导论',''),
('3-245','操作系统',''),
('6-166','数字电路',''),
('9-888','高等数学','');
-- 录入成绩信息
INSERT INTO score VALUES
('','3-245',86),
('','3-245',75),
('','3-245',68),
('','3-105',92),
('','3-105',88),
('','3-105',76),
('','3-105',64),
('','3-105',91),
('','3-105',78),
('','6-166',85),
('','6-166',79),
('','6-166',81);
-- 查询
-- 1,查询Student表中的所有记录的Sname、Ssex和Class列
SELECT sname,ssex,class FROM student; -- 2,查询教师所有的单位即不重复的Depart列
SELECT DISTINCT depart 所在单位 FROM teacher; -- 3,查询Student表的所有记录
SELECT * FROM student; -- 4,查询Score表中成绩在60到80之间的所有记录
-- 前闭后开
SELECT * FROM score WHERE degree BETWEEN 60 AND 80; -- 5,查询Score表中成绩为85,86或88的记录
SELECT * FROM score WHERE degree=85 || degree=86 || degree=88;
SELECT * FROM score WHERE degree=85 OR degree=86 OR degree=88;
SELECT * FROM score WHERE degree IN (85,86,88); -- 6,查询Student表中“95031”班,性别为“女”的同学记录
SELECT * FROM student WHERE ssex='女' AND class='';
SELECT * FROM student WHERE ssex='女' OR class=''; -- 7,Class降序查询Student表的所有记录
SELECT * FROM student ORDER BY class DESC; -- 8,以Cno升序,Degree降序查询Score表的所有记录。
SELECT * FROM score ORDER BY cno,degree DESC; -- 9,查询“95031”班的学生人数。
SELECT class 班级,COUNT(*) 人数 FROM student WHERE class='';
SELECT class 班级 FROM student WHERE class=''; -- 10,查询Score表中的最高分的学生学号和课程号。(子查询或者排序)
SELECT sno 学号,cno 课程号 FROM score WHERE degree =(SELECT MAX(degree)FROM score ) -- 11,查询每门课的平均成绩
SELECT cno 课程编号,AVG(degree) FROM score GROUP BY cno;
-- 加上课程名称了
SELECT cno 课程编号,cname 课程名称,AVG(degree)
FROM (SELECT score.cno,cname,degree FROM course,score WHERE course.cno=score.cno) AS xx
GROUP BY cno;
-- 1.明确要查询的表,可能是子查询(明确语句的执行顺序)
-- 2.加条件
-- 3.尽量用IN,不用等号?
-- 12,查询Score表中至少有5名学生选修的并以3开头的课程的平均分数
-- 没有加上课程名,太麻烦
-- 方法一:
SELECT cno,AVG(degree) FROM score WHERE
cno=(SELECT cno FROM score WHERE cno LIKE '3%' GROUP BY cno HAVING COUNT(*)>=5);
-- 方法二:
SELECT cno,AVG(degree ) FROM score WHERE cno LIKE '3%' GROUP BY cno HAVING COUNT(*)>=5; -- 13,查询分数大于70,小于90的Sno列
-- between and 前闭后开?
SELECT sno FROM score WHERE degree>70 AND degree<90; -- 14,查询所有学生的Sname、Cno和Degree列
-- 可以试着加上课程的名字
-- 用JOIN写写
SELECT sname,cno,degree FROM student,score WHERE student.sno=score.sno; -- 15,查询所有学生的Sno、Cname和Degree列
-- 用JOIN写写
SELECT student.sno,sname,cname,degree FROM student,score,course
WHERE student.sno=score.sno AND score.cno=course.cno
ORDER BY student.sno; -- 16,查询所有学生的Sname、Cname和Degree列
SELECT sname,cname,degree FROM student,score,course
WHERE student.sno=score.sno AND score.cno=course.cno
ORDER BY student.sno; -- 17,查询“95033”班学生的平均分。
SELECT class,AVG(degree) FROM score,student
WHERE student.sno=score.sno and class=''; -- 18,现查询所有同学的Sno、Cno和rank列
SELECT student.sno,cno,rank FROM student,score,grade
WHERE student.sno=score.sno AND degree<=upp AND degree>low;
-- 方法二:这个很重要
SELECT sno,cno,rank FROM score JOIN grade ON degree BETWEEN low AND upp; -- 19,查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。
SELECT * FROM score WHERE cno='3-105'
AND degree>(SELECT degree FROM score WHERE sno=''AND cno='3-105'); -- 20,查询score中选学多门课程的同学中分数为非最高分成绩的记录。
-- 会有别名错误,什么时候才必须加别名
SELECT * FROM score
WHERE cno in(SELECT cno FROM score GROUP BY cno HAVING count(*)>1)
AND degree <> (SELECT MAX(degree) FROM score);
-- 更正
SELECT * FROM score a
WHERE sno in(SELECT sno FROM score GROUP BY sno HAVING count(*)>1)
AND degree <> (SELECT MAX(degree) FROM score b WHERE b.cno=a.cno);
-- 另一种理解
SELECT * FROM score a
WHERE sno in(SELECT sno FROM score GROUP BY sno HAVING count(*)>1)
AND degree <> (SELECT MAX(degree) FROM ); -- 21,查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
SELECT * FROM score
WHERE degree > (SELECT max(degree) FROM score WHERE sno=''AND cno = '3-105'); -- 22,查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
SELECT * FROM student
WHERE YEAR(sbirthday)=(SELECT YEAR(sbirthday) FROM student WHERE sno='') AND sno <> ''; -- 23,查询“张旭“教师任课的学生成绩。
SELECT degree FROM course,teacher,score
WHERE teacher.tno=course.tno AND course.cno=score.cno AND tname='张旭';
-- :嵌套的做法 -- 24,查询选修某课程的同学人数多于5人的教师姓名
SELECT tname FROM course,teacher,score
WHERE teacher.tno=course.tno AND course.cno=score.cno
GROUP BY teacher.tno HAVING count(*)>5;
-- 嵌套的做法
SELECT tname FROM teacher WHERE tno IN
(SELECT tno FROM course WHERE cno IN
(SELECT cno FROM score GROUP BY cno HAVING COUNT(*)>5)); -- 25,查询95033班和95031班全体学生的记录
SELECT * FROM student WHERE class='' OR class='';
SELECT * FROM student WHERE class IN ('',''); -- 26,查询存在有85分以上成绩的课程Cno.
SELECT DISTINCT cno FROM score WHERE degree>85; -- 27,查询出“计算机系“教师所教课程的成绩表。
SELECT score.sno,score.cno,score.degree,depart FROM course,teacher,score
WHERE teacher.tno=course.tno AND course.cno=score.cno AND depart='计算机系';
-- 这里也可以用嵌套 -- 28,查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof
-- 方法一:
SELECT tname,prof FROM teacher WHERE depart='计算机系'
AND prof NOT IN(SELECT prof FROM teacher WHERE depart='电子工程系' )
UNION
SELECT tname,prof FROM teacher WHERE depart='电子工程系'
AND prof NOT IN(SELECT prof FROM teacher WHERE depart='计算机系' ) ;
-- 方法二:思路不清晰,得整理
SELECT tname,prof FROM teacher a WHERE
a.prof NOT IN (SELECT b.prof FROM teacher b WHERE b.depart <> a.depart )
-- 方法三:
SELECT * FROM teacher WHERE prof NOT IN (SELECT prof FROM teacher WHERE depart='计算机系'
AND prof IN(SELECT prof FROM teacher WHERE depart='电子工程系')); -- 29,查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的
-- Cno、Sno和Degree,并按Degree从高到低次序排序。
SELECT cno,sno,degree FROM score WHERE cno='3-105'
AND degree > ANY(SELECT MIN(degree) FROM score WHERE cno='3-245' )
ORDER BY degree DESC;
-- ANY 至少一个 ALL 所有的 可以用来替代min和max -- 30,查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree.
SELECT cno,sno,degree FROM score WHERE cno='3-105'
AND degree > ALL(SELECT MAX(degree) FROM score WHERE cno='3-245' )
ORDER BY degree DESC; -- 31,查询所有教师和同学的name、sex和birthday.
SELECT sname 姓名,ssex 性别,sbirthday 生日 FROM student
UNION-- 研究一下这个还有相关子查询
SELECT tname 姓名,tsex 性别,tbirthday 生日 FROM teacher; -- 32,查询所有“女”教师和“女”同学的name、sex和birthday.
SELECT sname 姓名,ssex 性别,sbirthday 生日 FROM student WHERE ssex='女'
UNION-- 研究一下join
SELECT tname 姓名,tsex 性别,tbirthday 生日 FROM teacher WHERE tsex='女'; -- 33,查询成绩比该课程平均成绩低的同学的成绩表。
-- 相关子查询的应用
SELECT * FROM score a
WHERE a.degree > (SELECT AVG(degree) FROM score b WHERE b.cno=a.cno); -- 34,查询所有任课教师的Tname和Depart.
-- 方法一:
SELECT tname,depart FROM teacher WHERE tname IN
(SELECT DISTINCT tname FROM course,teacher,score
WHERE teacher.tno=course.tno AND course.cno=score.cno);
-- 方法二:还得研究一下啊
SELECT DISTINCT tname,depart FROM teacher LEFT JOIN course ON teacher.tno=course.tno
LEFT JOIN score ON score.cno=course.cno WHERE degree IS NOT NULL;
-- 嵌套的方法
SELECT tname,depart FROM teacher WHERE tno IN (SELECT tno FROM course ); -- 35,查询所有未讲课的教师的Tname和Depart.
SELECT tname,depart FROM teacher WHERE tname NOT IN
(SELECT DISTINCT tname FROM course,teacher,score
WHERE teacher.tno=course.tno AND course.cno=score.cno);
-- 方法二:
SELECT tname,depart FROM teacher LEFT JOIN course ON teacher.tno=course.tno
LEFT JOIN score ON score.cno=course.cno WHERE degree IS NULL; -- 36,查询至少有2名男生的班号。
SELECT class FROM student
GROUP BY class HAVING COUNT(ssex)>=2; -- 37,查询Student表中不姓“王”的同学记录。
SELECT * FROM student WHERE sname NOT LIKE '王%'; -- 38,查询Student表中每个学生的姓名和年龄。
SELECT sname 姓名,YEAR(NOW())-YEAR(sbirthday) 年龄 FROM student; -- 39,查询Student表中最大和最小的Sbirthday日期值。
SELECT MAX(sbirthday),MIN(sbirthday) FROM student;
SELECT MAX(sbirthday) FROM student UNION SELECT MIN(sbirthday) FROM student; -- 40,以班号和年龄从大到小的顺序查询Student表中的全部记录。
SELECT * FROM student ORDER BY class DESC,sbirthday ASC; -- 41,查询“男”教师及其所上的课程。
SELECT cname,tname FROM course JOIN teacher ON teacher.tno=course.tno
WHERE tsex='男'; -- 42,查询最高分同学的Sno、Cno和Degree列。
SELECT sno,cno,degree FROM score WHERE degree = (SELECT MAX(degree) FROM score); -- 43,查询和“李军”同性别的所有同学的Sname.
SELECT sname FROM student WHERE ssex IN
(SELECT ssex FROM student WHERE sname='李军'); -- 44,查询和“李军”同性别并同班的同学Sname.
SELECT sname FROM student WHERE
ssex IN (SELECT ssex FROM student WHERE sname='李军')
AND
class IN (SELECT class FROM student WHERE sname='李军'); -- 45,查询所有选修“计算机导论”课程的“男”同学的成绩表。
SELECT * FROM course JOIN score ON course.cno=score.cno
JOIN student ON student.sno=score.sno
WHERE cname='计算机导论' AND ssex='男';
-- 嵌套的思路
MySql练习+加源代码的更多相关文章
- Python连接MySQL的实例代码
Python连接MySQL的实例代码 MySQLdb下载地址:http://sourceforge.net/projects/mysql-python/ 下载解压缩后放到%Python_HOME% ...
- python3.4学习笔记(二十五) Python 调用mysql redis实例代码
python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...
- MySQL 创始人:写代码比打游戏爽,程序员应多泡开源社区
王练 发布于2017年09月04日 收藏 43 开源中国全球专享福利,云栖大会购票大返现!>>> 根据StackOverflow的最新调查,MySQL仍然是全世界最流行的数 ...
- MySQL复习值代码知识点(1)
MySQL复习值代码知识点 一. 创建数据库 create database 数据库名: 二. 删除数据库 drop database 数据库名: 三. 选择相应的数据库 use 数据库名: 四. 创 ...
- mysql存储html代码之导出后无法导入问题
我用mysql的text类型存储了一些html代码,然后用navicat for mysql导出,然后再次导入的时候,就死活导不进去. mysql提示的错误是:this saves the data ...
- Java连接MySQl数据库实现代码
1. 获取数据库连接和查询代码 package connectionmysql; import java.sql.Connection; import java.sql.DriverManager; ...
- Linux自动备份MySQL数据库脚本代码
下面这段Linux的Shell脚本用于每日自动备份MySQL数据库,可通过Linux的crontab每天定时执行 在脚本中可设置需要备份的数据库表清单,并且会将备份文件通过gzip压缩.需要注意的是, ...
- jdbc调用mysql存储过程实现代码带有输入和输出
转载自 http://www.jb51.net/article/34747.htm 1. 创建存储过程 建立一个MySQL的存储过程 add_pro 复制代码代码如下: delimiter // dr ...
- SSM 配合 Mysql 数据库和代码数据源主从分离
大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...
随机推荐
- win8 鼠标失灵解决办法
前几天 也没更新,却不知道突然win8 pro 失灵了,是不是ms 后台运行的也不确定,不过更新之后就可以用了. 经供参考: 更新前: 更新后: 我的主板是华硕的,有时候需要重启几次鼠标才显示出来
- 关于android LinearLayout的比例布局(转载)
关于android LinearLayout的比例布局,主要有以下三个属性需要设置: 1,android:layout_width,android:layout_height,android:layo ...
- Android 贝塞尔曲线 折线图
1.贝塞尔曲线:http://baike.baidu.com/view/60154.htm,在这里理解什么是贝塞尔曲线 2.直接上图: 3.100多行代码就可以画出贝塞尔曲线,直接上代码 packag ...
- Hark的数据结构与算法练习之多路归并排序
算法说明 多路归并排序也叫k路归并排序,实际上是归并排序的扩展版,同样也是归并排序的一种,通常的应用场景的针对大数据量的排序. 实现过程: 1.从字面可以看出,多路归并就是将待排的大数据量分成K路,然 ...
- 使用NGUINGUI的相关介绍
1.3 使用NGUI 要使用NGUI,需要首先为游戏项目导入NGUI插件资源,然后再创建UI Root对象,在这以后才可以添加各种UI控件,下面本节会详解介绍这些知识本文选自NGUI从入门到实战! ...
- BZOJ1103 [POI2007]大都市meg(DFS序)
题目:一颗树,单边修改,链上查询..实际上链是根到结点的链.网上好像有其他做法,我的想法是这样的: 先不看修改,毫无疑问查询只是查询结点的深度:而修改一条边会有什么影响:影响是且只是以边上深度最深结点 ...
- 生成跨语言的类型声明和接口绑定的工具(Djinni )
Djinni 是一个用来生成跨语言的类型声明和接口绑定的工具,主要用于 C++ 和 Java 以及 Objective-C 间的互通. 示例接口定义文件: # Multi-line comments ...
- Windows Phone 硬件检测
private static bool IsWvga{ get { return App.Current.Host.Content.ScaleFactor == 100; }} private sta ...
- Codeforces Round #192 (Div. 2) A. Cakeminator
#include <iostream> #include <vector> using namespace std; int main(){ int r,c; cin > ...
- 【wikioi】1002 搭桥(dfs+最小生成树)
http://wikioi.com/problem/1002/ 今天开始又开始刷水了哈T_T.照着hzwer神犇的刷题记录刷!!! 题解: 一开始我也不会,但是我想到了直接爆搜T_T. 好吧,题解. ...