1、磁盘lvm管理,完成下面要求,并写出详细过程:

  1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录

准备两个10G的磁盘sdb,sdc或分区
[root@linux-node2- ~]# fdisk -l|grep sd
Disk /dev/sda: 53.7 GB, bytes, sectors
/dev/sda1 * Linux
/dev/sda2 8e Linux LVM
Disk /dev/sdb: 10.7 GB, bytes, sectors
Disk /dev/sdc: 10.7 GB, bytes, sectors 使用sdb和sdc两个磁盘创建PV
[root@linux-node2- ~]# pvcreate /dev/sd{b,c}
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created. [root@linux-node2- ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- .80g
/dev/sdb lvm2 --- .00g .00g
/dev/sdc lvm2 --- .00g .00g 创建名为testvg的VG,要求PE大小 为16MB
[root@linux-node2- ~]# vgcreate -s 16M testvg /dev/sd{b,c}
Volume group "testvg" successfully created
[root@linux-node2- ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos wz--n- .80g
testvg wz--n- <.97g <.97g 在卷组中创建大小为5G的逻 辑卷testlv
[root@linux-node2- ~]# lvcreate -n testlv -L 5G testvg
Logical volume "testlv" created.
[root@linux-node2- ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- .80g
swap centos -wi-ao---- .00g
testlv testvg -wi-a----- .00g 挂载至/users目录
[root@linux-node2- ~]# mkdir /users
[root@linux-node2- ~]# mkfs.xfs /dev/mapper/testvg-testlv
[root@linux-node2- ~]# mount /dev/mapper/testvg-testlv /users 永久挂载
[root@linux-node2- ~]# blkid
/dev/mapper/testvg-testlv: UUID="c20abbbc-6714-4bb3-b6b3-039e49ebb1ad" TYPE="xfs" [root@linux-node2- ~]# vim /etc/fstab
添加
UUID=c20abbbc--4bb3-b6b3-039e49ebb1ad /users xfs defaults [root@linux-node2- ~]# mount -a
[root@linux-node2- ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 48G .4G 39G % /
devtmpfs 899M 899M % /dev
tmpfs 911M 911M % /dev/shm
tmpfs 911M 9.6M 902M % /run
tmpfs 911M 911M % /sys/fs/cgroup
/dev/sda1 197M 120M 77M % /boot
tmpfs 183M 183M % /run/user/
/dev/mapper/testvg-testlv .0G 33M .0G % /users

 [root@linux-node2-202 ~]# vgdisplay testvg|egrep -io "(pe|vg).*size.*"
  VG Size <19.97 GiB
  PE Size 16.00 MiB
  PE / Size 320 / 5.00 GiB
  PE / Size 958 / <14.97 GiB

  2) 扩展testlv至7G,要求archlinux用户的文件不能丢失

创建archlinux用户
[root@linux-node2- ~]# useradd archlinux -d /users/archlinux
[root@linux-node2- ~]# su - archlinux
[archlinux@linux-node2- ~]$ pwd
/users/archlinux
[archlinux@linux-node2- ~]$ cp -R /var/log .
[archlinux@linux-node2- ~]$ tree
.
└── log
├── anaconda
├── audit
├── cobbler
│   ├── anamon
│   ├── cobbler.log
│   ├── install.log
│   ├── kicklog
│   ├── syslog
│   └── tasks
│   ├── --22_195442_get_loaders.log
│   ├── --22_195512_sync.log
│   ├── --22_195653_sync.log
│   ├── --22_195950_import.log
│   ├── --22_200256_import.log
│   ├── --22_200523_import.log
│   └── --22_200652_sync.log
├── dmesg
├── dmesg.old
├── firewalld
├── grubby_prune_debug
├── httpd
├── lastlog
├── rhsm
├── tuned
│   └── tuned.log
├── vmware-vgauthsvc.log.
├── vmware-vmsvc.log
└── wtmp directories, files
[archlinux@linux-node2- ~]$ du -sh log
2.2M log 扩展testlv至7G,要求archlinux用户的文件不能丢失 [root@linux-node2- ~]# vgdisplay testvg|grep Size
VG Size <19.97 GiB
PE Size 16.00 MiB
Alloc PE / Size / 5.00 GiB
Free PE / Size / <14.97 GiB
[root@linux-node2- ~]# lvdisplay /dev/testvg/testlv|grep Size
LV Size 5.00 GiB
可以看到当前的LV大小为5G,VG可分配的大小为15G 需要再扩容2G
[root@linux-node2- ~]# lvextend -L +2G /dev/mapper/testvg-testlv
Size of logical volume testvg/testlv changed from 5.00 GiB ( extents) to 7.00 GiB ( extents).
Logical volume testvg/testlv successfully resized.
[root@linux-node2- ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- .80g
swap centos -wi-ao---- .00g
testlv testvg -wi-ao---- .00g [root@linux-node2- ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos wz--n- .80g
testvg wz--n- <.97g <.97g [root@linux-node2- ~]# tree /users/archlinux/
/users/archlinux/
└── log
├── anaconda
├── audit
├── cobbler
│   ├── anamon
│   ├── cobbler.log
│   ├── install.log
│   ├── kicklog
│   ├── syslog
│   └── tasks
│   ├── --22_195442_get_loaders.log
│   ├── --22_195512_sync.log
│   ├── --22_195653_sync.log
│   ├── --22_195950_import.log
│   ├── --22_200256_import.log
│   ├── --22_200523_import.log
│   └── --22_200652_sync.log
├── dmesg
├── dmesg.old
├── firewalld
├── grubby_prune_debug
├── httpd
├── lastlog
├── rhsm
├── tuned
│   └── tuned.log
├── vmware-vgauthsvc.log.
├── vmware-vmsvc.log
└── wtmp directories, files [root@linux-node2- ~]# du -sh /users/archlinux/
2.3M /users/archlinux/

3) 收缩testlv至3G,要求archlinux用户的文件不能丢失

缩减逻辑卷需要先取消挂载,再进行操作
[root@linux-node2- ~]# umount /users
[root@linux-node2- ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- .80g
swap centos -wi-ao---- .00g
testlv testvg -wi-a----- .00g #Xfs系统不支持缩减 检查文件完整性
[root@linux-node2- ~]# e2fsck -f -y /dev/mapper/testvg-testlv
e2fsck 1.42. (-Dec-)
Pass : Checking inodes, blocks, and sizes
Pass : Checking directory structure
Pass : Checking directory connectivity
Pass : Checking reference counts
Pass : Checking group summary information
/dev/mapper/testvg-testlv: / files (0.0% non-contiguous), / blocks 收缩testlv至3G,要求archlinux用户的文件不能丢失 先设置文件系统大小
[root@linux-node2- ~]# resize2fs /dev/mapper/testvg-testlv 3G
resize2fs 1.42. (-Dec-)
Resizing the filesystem on /dev/mapper/testvg-testlv to (4k) blocks.
The filesystem on /dev/mapper/testvg-testlv is now blocks long. 缩减逻辑卷
[root@linux-node2- ~]# lvreduce -L 3G /dev/mapper/testvg-testlv
WARNING: Reducing active logical volume to 3.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce testvg/testlv? [y/n]: y
Size of logical volume testvg/testlv changed from 7.00 GiB ( extents) to 3.00 GiB ( extents).
Logical volume testvg/testlv successfully resized.
[root@linux-node2- ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- .80g
swap centos -wi-ao---- .00g
testlv testvg -wi-a----- .00g [root@linux-node2- ~]# lvdisplay /dev/testvg/testlv|grep Size
LV Size 3.00 GiB [root@linux-node2- ~]# tree /users/archlinux/
/users/archlinux/
└── log
├── anaconda
├── audit
├── cobbler
│   ├── anamon
│   ├── cobbler.log
│   ├── install.log
│   ├── kicklog
│   ├── syslog
│   └── tasks
│   ├── --22_195442_get_loaders.log
│   ├── --22_195512_sync.log
│   ├── --22_195653_sync.log
│   ├── --22_195950_import.log
│   ├── --22_200256_import.log
│   ├── --22_200523_import.log
│   └── --22_200652_sync.log
├── dmesg
├── dmesg.old
├── firewalld
├── grubby_prune_debug
├── httpd
├── lastlog
├── rhsm
├── tuned
│   └── tuned.log
├── vmware-vgauthsvc.log.
├── vmware-vmsvc.log
└── wtmp directories, files [root@linux-node2- ~]# du -sh /users/archlinux/
2.3M /users/archlinux/

  4) 对testlv创建快照,并尝试基于快照备份数据,验证快照的功能

[root@linux-node2- ~]# lvcreate -n testlv_snap -s -p r -L 5G  /dev/mapper/testvg-testlv
lvcreate 创建 名称为testlv_snap 快照 属性-只读 容量5G 目标/dev/mapper/testvg-testlv
Reducing COW size 5.00 GiB down to maximum usable size <3.02 GiB.
Logical volume "testlv_snap" created. [root@linux-node2- ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- .80g
swap centos -wi-ao---- .00g
testlv testvg owi-aos--- .00g
testlv_snap testvg sri-a-s--- <.02g testlv 0.01 [root@linux-node2- ~]# lvdisplay /dev/test*|grep snap
LV snapshot status source of
testlv_snap [active]
LV Path /dev/testvg/testlv_snap
LV Name testlv_snap
LV snapshot status active destination for testlv
Allocated to snapshot 0.01% [root@linux-node2- ~]# blkid |grep testvg
/dev/mapper/testvg-testlv: UUID="fe421f83-f353-4ad3-a571-47e808c5dd5d" TYPE="ext4"
/dev/mapper/testvg-testlv_snap: UUID="fe421f83-f353-4ad3-a571-47e808c5dd5d" TYPE="ext4"
可以看到两个uuid相同 验证快照的功能
挂载快照
[root@linux-node2- ~]# mount /dev/mapper/testvg-testlv_snap /mnt/snap
mount: /dev/mapper/testvg-testlv_snap is write-protected, mounting read-only [root@linux-node2- ~]# tree /mnt/snap
/mnt/snap
├── archlinux
│   └── log
│   ├── anaconda
│   ├── audit
│   ├── cobbler
│   │   ├── anamon
│   │   ├── cobbler.log
│   │   ├── install.log
│   │   ├── kicklog
│   │   ├── syslog
│   │   └── tasks
│   │   ├── --22_195442_get_loaders.log
│   │   ├── --22_195512_sync.log
│   │   ├── --22_195653_sync.log
│   │   ├── --22_195950_import.log
│   │   ├── --22_200256_import.log
│   │   ├── --22_200523_import.log
│   │   └── --22_200652_sync.log
│   ├── dmesg
│   ├── dmesg.old
│   ├── firewalld
│   ├── grubby_prune_debug
│   ├── httpd
│   ├── lastlog
│   ├── rhsm
│   ├── tuned
│   │   └── tuned.log
│   ├── vmware-vgauthsvc.log.
│   ├── vmware-vmsvc.log
│   └── wtmp
└── lost+found directories, files [root@linux-node2- ~]# du -sh /mnt/snap
2.3M /mnt/snap 删除源目录中的文件
[root@linux-node2- ~]# rm -rf /users/archlinux/log/httpd/
[root@linux-node2- ~]# rm -f /users/archlinux/log/*
[root@linux-node2-202 ~]# tree /users/archlinux/
/users/archlinux/
└── log
├── anaconda
├── audit
├── cobbler
│   ├── anamon
│   ├── cobbler.log
│   ├── install.log
│   ├── kicklog
│   ├── syslog
│   └── tasks
│   ├── 2019-07-22_195442_get_loaders.log
│   ├── 2019-07-22_195512_sync.log
│   ├── 2019-07-22_195653_sync.log
│   ├── 2019-07-22_195950_import.log
│   ├── 2019-07-22_200256_import.log
│   ├── 2019-07-22_200523_import.log
│   └── 2019-07-22_200652_sync.log
├── rhsm
└── tuned
└── tuned.log 10 directories, 10 files [root@linux-node2-202 ~]# du -sh /users/archlinux/
2.0M /users/archlinux/ 还原快照
取消源和快照的挂载
[root@linux-node2-202 ~]# umount /users
[root@linux-node2-202 ~]# umount /mnt/snap
还原快照
[root@linux-node2-202 ~]# lvconvert --merge /dev/mapper/testvg-testlv_snap
Merging of volume testvg/testlv_snap started.
testvg/testlv: Merged: 100.00%
验证数据
[root@linux-node2-202 ~]# du -sh /users/archlinux/
2.3M /users/archlinux/ [root@linux-node2-202 ~]# du -sh /users/archlinux/
2.3M /users/archlinux/
[root@linux-node2-202 ~]# tree /users/archlinux/
/users/archlinux/
└── log
├── anaconda
├── audit
├── cobbler
│   ├── anamon
│   ├── cobbler.log
│   ├── install.log
│   ├── kicklog
│   ├── syslog
│   └── tasks
│   ├── 2019-07-22_195442_get_loaders.log
│   ├── 2019-07-22_195512_sync.log
│   ├── 2019-07-22_195653_sync.log
│   ├── 2019-07-22_195950_import.log
│   ├── 2019-07-22_200256_import.log
│   ├── 2019-07-22_200523_import.log
│   └── 2019-07-22_200652_sync.log
├── dmesg
├── dmesg.old
├── firewalld
├── grubby_prune_debug
├── httpd
├── lastlog
├── rhsm
├── tuned
│   └── tuned.log
├── vmware-vgauthsvc.log.0
├── vmware-vmsvc.log
└── wtmp 11 directories, 18 files 创建快照(XFS)系统
lvcreate -n lv_mysql_snap -s -L 1G -p r /dev/mapper/testvg-testlv
mount /dev/mapper/testvg-testlv /mnt/snap/ #直接挂载不上去
mount -o nouuid /dev/mapper/testvg-testlv_snap /mnt/snap/ #加上nouuid选项 还原快照(XFS)
取消所有相关挂载
lvconvert --merge /dev/mapper/testvg-testlv_snap

2、创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录

创建3个1G的分区
[root@linux-node2- ~]# fdisk -l /dev/sdb Disk /dev/sdb: 10.7 GB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk label type: dos
Disk identifier: 0xdf25804a Device Boot Start End Blocks Id System
/dev/sdb1 Linux
/dev/sdb2 Linux
/dev/sdb3 Linux 创建raid sdb3 作为空闲盘
[root@linux-node2- ~]# mdadm -C -a yes /dev/md0 -l -n /dev/sdb{,} -x -c /dev/sdb3 [root@linux-node2- ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Jul ::
Raid Level : raid1
Array Size : (1022.00 MiB 1071.64 MB)
Used Dev Size : (1022.00 MiB 1071.64 MB)
Raid Devices :
Total Devices :
Persistence : Superblock is persistent Update Time : Tue Jul ::
State : clean
Active Devices :
Working Devices :
Failed Devices :
Spare Devices : Consistency Policy : resync Name : linux-node2-: (local to host linux-node2-)
UUID : 15c85ba6:1df98782:c64f8908:3eee284d
Events : Number Major Minor RaidDevice State
active sync /dev/sdb1
active sync /dev/sdb2 - spare /dev/sdb3 模拟sdb1故障
[root@linux-node2- ~]# mdadm /dev/md0 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
[root@linux-node2- ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Jul ::
Raid Level : raid1
Array Size : (1022.00 MiB 1071.64 MB)
Used Dev Size : (1022.00 MiB 1071.64 MB)
Raid Devices :
Total Devices :
Persistence : Superblock is persistent Update Time : Tue Jul ::
State : clean
Active Devices :
Working Devices :
Failed Devices :
Spare Devices : Consistency Policy : resync Name : linux-node2-: (local to host linux-node2-)
UUID : 15c85ba6:1df98782:c64f8908:3eee284d
Events : Number Major Minor RaidDevice State
active sync /dev/sdb3
active sync /dev/sdb2 - faulty /dev/sdb1 将sdb1从raid1中删除
[root@linux-node2- ~]# mdadm /dev/md0 -r /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md0
[root@linux-node2- ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Jul ::
Raid Level : raid1
Array Size : (1022.00 MiB 1071.64 MB)
Used Dev Size : (1022.00 MiB 1071.64 MB)
Raid Devices :
Total Devices :
Persistence : Superblock is persistent Update Time : Tue Jul ::
State : clean
Active Devices :
Working Devices :
Failed Devices :
Spare Devices : Consistency Policy : resync Name : linux-node2-: (local to host linux-node2-)
UUID : 15c85ba6:1df98782:c64f8908:3eee284d
Events : Number Major Minor RaidDevice State
active sync /dev/sdb3
active sync /dev/sdb2 将sdb1添加回raid1
[root@linux-node2- ~]# mdadm /dev/md0 -a /dev/sdb1
mdadm: added /dev/sdb1
[root@linux-node2- ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Jul ::
Raid Level : raid1
Array Size : (1022.00 MiB 1071.64 MB)
Used Dev Size : (1022.00 MiB 1071.64 MB)
Raid Devices :
Total Devices :
Persistence : Superblock is persistent Update Time : Tue Jul ::
State : clean
Active Devices :
Working Devices :
Failed Devices :
Spare Devices : Consistency Policy : resync Name : linux-node2-: (local to host linux-node2-)
UUID : 15c85ba6:1df98782:c64f8908:3eee284d
Events : Number Major Minor RaidDevice State
active sync /dev/sdb3
active sync /dev/sdb2 - spare /dev/sdb1

3、简述TCP链接建立和断开过程

https://www.cnblogs.com/bj-mr-li/p/11106397.html

https://www.cnblogs.com/bj-mr-li/p/11106390.html

TCP建立连接的过程叫三次握手
三次握手
第一次,客户端发起SYN=,seq=x,给服务端,并将状态为SYN-SEND
第二次,服务端收到第一次请求,回应SYN=,ACK=,seq=x,状态为SYN-RECV
第三次,客户端收到服务端的回包,回应ACK=,seq=x+ seq=y+,状态为ESTAB
客户端收到回包后连接建立,开始发送数据 TCP断开连接的过程叫四次挥手,比三次握手多了一个确认过程
第一次,客户端发送FIN=,seq=x给服务端,状态由ESTAB修改为FIN-WAIT1
第二次,服务端收到后,回应ACK=, seq=y,ack=x+,状态为CLOSE-WAIT,通知进程关闭连接,客户端状态为FIN-WAIT2
第三次,服务端收完所有数据后,发送FIN=,ACK=,seq=z,ack=x+,状态为LAST-ACK
第四次,客户端收到后,等待2MSL(2倍传送时间)后,发送ACK=,seq=x+,ack=z+,连接关闭

4、简述TCP和UDP的区别

:TCP基于连接,UDP基于无连接。
:TCP对系统资源要求高,UDP少。
:TCP是基于字节流的,UDP是数据报文模式。
:TCP复杂,UDP简单。
:TCP有验证过程,是可靠的连接,UDP无验证过程,是不可靠的连接

第五周作业,LVM和TCP的更多相关文章

  1. 2018-2019-1 20189221《Linux内核原理与分析》第五周作业

    2018-2019-1 20189221<Linux内核原理与分析>第五周作业 实验四 实验过程 当用户态进程调用一个系统调用时,cpu切换到内核态并开始执行一个内核函数. 在Linux中 ...

  2. 2017-2018-1 JaWorld 第四、五周作业

    2017-2018-1 JaWorld 第四.五周作业 两周工作内容 小组讨论并确定最终的app雏形 合作完成需求说明书 工作分工 成员 分工 比例 陈是奇 1.引言 8% 马平川 2.1-2.5 产 ...

  3. 2017-2018-1 JAVA实验站 第四、五周作业

    2017-2018-1 JAVA实验站 第四.五周作业 JAVA实验站小组成员 学号 名字 职务 20162318 张泰毓 组长 20162303 石亚鑫 组员 20162304 张浩林 组员 201 ...

  4. 2017-2018-1 20179205《Linux内核原理与设计》第五周作业

    <Linux内核原理与设计>第五周作业 视频学习及操作分析 一.用户态.内核态和中断 内核态在CPU执行中对应高执行级别,执行级别为0级,具有特权指令,可以访问任意物理地址:用户态执行级别 ...

  5. 第五周作业:markdown语法小总结

    第五周作业 markdown语法总结 早就想写这么一个文章了,关于markdown的语法,因为最近使用的比较多,所以特地总结一下 一,标题 首先要介绍的就是标题, 标题一共有六级 # h1 ## h2 ...

  6. 2019-2020-1 20199329《Linux内核原理与分析》第五周作业

    <Linux内核原理与分析>第五周作业 一.上周问题总结: 虚拟机将c文件汇编成汇编文件时忘记添加include<stdio.h> gdb跟踪汇编过程不熟练 二.本周学习内容: ...

  7. 2019春第五周作业Compile Summarize

    这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 在这里 我在这个课程的目标是 能够精通关于数组内部运作原理 这个作业在哪个具体方面帮助我实现目标 如何输出一行的连续字符 参考文献与网址 ...

  8. 第四周预习作业and第五周作业

    第四周预习作业 统计一行文本的单词个数 本题目要求编写程序统计一行字符中单词的个数.所谓"单词"是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个. 输入格式: 输入 ...

  9. 20162327WJH第五周作业

    学号 20162327 <程序设计与数据结构>第5周学习总结 教材学习内容总结 1.java是一种面向对象的语言.面向对象是一种编程方法.更是一种思维方式. 2.面向对象编程的终极目标是消 ...

  10. 第五周作业总结(内含用Junit测试ArrayStack和LinkedStack课堂练习报告)

    ---恢复内容开始--- 学号 20162310<程序设计与数据结构>第五周学习总结 教材学习内容总结 集合分为线性集合(集合中的元素排成一行)和非线性集合(按不同于一行的方式来组织元素, ...

随机推荐

  1. Ubuntu 18.04 LTS 64位Linux搭建Kubernetes 1.15.3并join子节点的完整过程

    1.软件准备 1.1.Ubuntu系统安装 https://ubuntu.com/download#download ubuntu系统需要设置用户,root默认为系统的账户不能被用户设置且每一次开机都 ...

  2. kubeDNS workflow(service registration and discovery)

    Service discovery In k8s, we usually will more than make an application instance, and also the corre ...

  3. 关于python3.8的一些新特性的解析与代码演示

    python3.8测试版出来了,我们来介绍一些变动,代码演示一下,当然底层相关的细节变动就不介绍了 只允许传位置参数 还记得如果我们想让某些参数只能以关键字参数的方式传递该怎么做吗? def foo1 ...

  4. 快读代码level.2

    long long read() { long long ans=0; char last=' ',ch=getchar();//last用来存正负号,并消去那些换行符,空格 ') { last=ch ...

  5. Tableau Sheet

    通过Tableau Sheet自带的超市数据给出几种图表. 在左侧数据Data栏有一列是Dimenslons是维度,下面Measures是测度,维度可以理解为你需要筛选的条件,比如根据年份看,根据地区 ...

  6. The Preliminary Contest for ICPC Asia Nanchang 2019 B. Fire-Fighting Hero

    题目:https://nanti.jisuanke.com/t/41349 思路:dijkstra最短路径 先以 fire-fighting hero为起点 跑一遍dijkstra 建立 起点 p 并 ...

  7. 洛谷P3402 可持久化并查集

    n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 说是可持久化并查集,实际上是 ...

  8. 【洛谷P3128】Max Flow

    题目大意:给定一棵 N 个节点的无根树,有 M 个操作,每次选定一条树链,将这条链上所有点的点权 +1,最后求树上点的最大点权是多少. 题解:树上差分算法的应用. 发现操作有 M 次,但是询问只有一次 ...

  9. python之ORM

    pymysql python操作数据库的基本步骤: 导入相应的python模块: 使用connect函数连接数据库,并返回一个connection对象: 通过connection对象的cursor方法 ...

  10. Python3数据结构汇总

    字符 列表 元组 集合 字典 能否被索引或切片 能 能 能 否 否 元素能否被编辑 否 能 否 能 能 增 1.list.append(x):把一个元素添加到列表的结尾: 2.list.insert( ...