Fork me on GitHub
浮生若梦,为欢几何


  • 首页

  • 分类

  • 归档

  • 标签

2018网络赛(一)1009 Tree and Permutation

发表于 2018-08-27 | 分类于 acm补题集

1009 Tree and Permutation

题目

Problem
There are vertices connected by edges, each edge has its own length.
The set { } contains a total of unique permutations, let’s say the
-th permutation is and is its -th number.
For the -th permutation, it can be a traverse sequence of the tree with vertices,
which means we can go from the -th vertex to the -th vertex by the shortest
path, then go to the -th vertex ( also by the shortest path ) , and so on. Finally
we’ll reach the -th vertex, let’s define the total distance of this route as ,
so please calculate the sum of for all permutations.

Input
There are 10 test cases at most.
The first line of each test case contains one integer ( ) .
For the next lines, each line contains three integer , and , which means
there is an edge between -th vertex and -th of length (
) .

Output
For each test case, print the answer module in one line.
Sample Input
3
1 2 1
2 3 1
3
1 2 1
1 3 2
Sample Output
16
24

题意

给出n个点(1,2,3…..n),用n-1条边连接,从第i点到第j点的路径取它们之间的最短路径,在某种排列下,从第一个节点到最后一个节点的距离为该排列的距离,求全排列的总距离和。

题解

1、写几个全排列可以发现:在n个节点的全排列中,每一条路径被计算了 (n-1)*2 次。

2、用dp求出每两节点的距离和,而每两节点的距离之和就是所有路径之和。求在总路径和里每条边被计算了几次——>son[a] * (n-son[a])次。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#define ll long long
using namespace std;
typedef pair<int,ll>edge;
const int maxn = 1e5+1;
const ll mod = 1e9+7;
vector<edge>emm[maxn];
ll dp[maxn];//当前节点和她所有下层节点的路径和
ll fac[maxn];//记录阶乘
int son[maxn],n;//去掉一条边后,分成两份节点,son指其中一份
inline void init()//计算(n-1)!
{
fac[0] = 1;
for(int i=1; i<maxn; i++) fac[i] = fac[i-1] * i % mod;
}
void dfs(int rt,int fa)//rt是当前结点,fa是上一个结点
{
son[rt] = 1;//初始化当前结点
for(auto v:emm[rt])//遍历容器中的每个值——>遍历每个和当前结点相连的结点
{
int to = v.first;//当前结点连通的结点
ll val = v.second;//当前结点到连通结点的边的权值
if(to == fa)//如果当前结点连接的是上一个结点,就不再计算该节点——>去重
continue;
dfs(to,rt);
son[rt] += son[to];//求结点连通的结点和
ll tmp = 1LL * son[to] * (n - son[to]) % mod;//当前边被计算了几次
dp[rt] = (dp[rt] + (dp[to] + tmp * val % mod) % mod) % mod;//当前结点(包括它的子节点)贡献的路程
}
}
int main()
{
init();
while(~scanf("%d",&n)) //输入结点数
{
memset(dp,0,sizeof(dp));//初始化
memset(son,0,sizeof(son));
for(int i=0; i<maxn; i++)
emm[i].clear();
int u,v;//u起点,v终点
ll val;
for(int i=1; i<n; i++)//记录给出路径
{
scanf("%d%d%lld",&u,&v,&val);
emm[u].push_back(make_pair(v,val));
emm[v].push_back(make_pair(u,val));
}
dfs(1,0);
printf("%lld\n",dp[1]*fac[n-1]%mod*2%mod);
}
return 0;
}

poj 1328 Radar Installation

发表于 2018-08-15 | 分类于 acm补题集

原题

题目大意:

x轴上方有n个小岛,现在x轴上建造雷达,每个雷达的辐射范围是d为半径的圆。求:为使所有小岛被辐射到,应当建造几个雷达。

题解:

情况:

1、要使小岛被辐射到,则小岛距离雷达距离小于等于雷达半径,

但通过雷达位置判断与小岛距离是难以实现的。

解决:

1、依次记录每个小岛可以被辐射到的雷达位置的范围并排序,若范围有交集则可以共同使用一雷达,若无交集则新建雷达。eg. 岛B左边界小于等于岛A右边界,则当前不需新建雷达,岛C左边界小于等于岛B但大于岛A边界,则当前应当新建一个雷达。

注意:岛与雷达距离计算公式:sqrt( (double) d d - y y);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
#define ll long long
int n,d;
struct emm
{
double r,l;
} isl[1001];//记录各岛可以被辐射的左右边界
bool cmp(emm a,emm b)
{
return a.l<b.l;
}
int main()
{
int cc=1;
ios::sync_with_stdio(false);
while(cin>>n>>d)
{
if(n==0&&d==0)break;
int ans=1;//记录雷达个数,起始为一个雷达
bool f=false;
int x,y;
for(int i=0; i<n; i++)
{
scanf("%d%d", &x, &y);
if(y>d)f=true;//岛到x轴垂直距离比d大时无解
else//记录左右路径,注意double
{
double len=sqrt((double)d*d-y*y);
isl[i].r=(double)x+len;
isl[i].l=(double)x-len;
}
}
if(f)
{
cout<<"Case "<<cc++<<": -1"<<endl;
continue;
}
sort(isl, isl+n,cmp);//对左边界排序
double now=isl[0].r;//当前雷达辐射范围右边界
for(int i=1; i<n; i++)//判断是否在辐射范围之内
{
if(isl[i].r<now)now=isl[i].r;
else if(now<isl[i].l)
{
now=isl[i].r;
ans++;
}
}
cout<<"Case "<<cc++<<": "<<ans<<endl;
}
return 0;
}

POJ 2965- The Pilots Brothers' refrigerator

发表于 2018-08-15 | 分类于 acm补题集

##POJ 2965-The Pilots Brothers’ refrigerator

原题

题目大意:

题目中给出的状态图包括’+’,’-‘,要求将其全部翻转成’-‘,每次翻转一个位置,那么它所在的行和列都要翻转

问最小翻转次数,同时输出翻转路径。

题解:

这道题和POJ 1753相似,但这里借鉴到了更好的算法:

情况:

1、这道题不存在impossible的情况,说明最多把所有‘+’都改一次可以实现全部符号为‘-’。

2、这道题的关键在于如何改变‘+’,而不改变与它关联的行和列。

解决:

实现1:用一个二维数组初始化为0,’+‘的位置记为1,接下来依次改变’+‘的位置并用它记录矩阵各位置的改动次数,最后对2取模。/ 当某位置最后的改动次数为偶数,对2取模为0,说明该位置同初始情况相比没有改变,不需要改动 / 最后只需搜索数组中奇数的个数就是答案。

实现2:思路同上,具体操作改为用bool型数组记录改动次数,最后找到值为true的数量就是答案。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
#define ll long long
bool vis[4][4];
char num[4][4];
int main()
{
int i,j,k;
int ii[17],jj[17];
int ans=0;
memset(vis,0,sizeof(vis));
for(i=0; i<4; i++)
cin>>num[i];
for(i=0; i<4; i++)//找到'+'的情况进行改动
{
for(j=0; j<4; j++)
{
if(num[i][j]=='+')
{
vis[i][j]=!vis[i][j];
for(int k=0; k<4; k++)//对关联行列改动
{
vis[i][k]=!vis[i][k];
vis[k][j]=!vis[k][j];
}
}
}
}
for(i=0; i<4; i++)//判断是否需要改动
for(j=0; j<4; j++)
if(vis[i][j]==1)
{
ii[ans]=i+1;
jj[ans]=j+1;
ans++;
}
cout<<ans<<endl;
for(i=0; i<ans; i++)
cout<<ii[i]<<' '<<jj[i]<<endl;
return 0;
}

POJ 1753 Flip Game(状压+搜索)

发表于 2018-08-14 | 分类于 acm补题集

原题

题目大意:

题目中给出4*4的状态图包括’b’,’w’,要求全部翻转成’b’或’w’, 每次翻转一个位置,那么它的上下左右四个位置也要翻转(如果有的话)。要求算出最小翻转次数。

题解:

因为题目数据量不大,所以其实一维二维都可以。在这里将矩阵用一串二进制数表示,异或操作进行翻转,注意判断行列。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# include<iostream>
# include<cstdio>
# include<algorithm>
# include<cstring>
# include<cmath>
using namespace std;
# define ll long long
int num[17]= {0};
int k;
int pd()//判断是否全部同向
{
int i;
for(i=2; i<=16; i++)
if(num[i]!=num[i-1])return 0;
return 1;
}
void fz(int i)//翻转操作
{
num[i]^=1;
if(i%4!=0)num[i+1]^=1;//不在最后一列
if(i%4!=1)num[i-1]^=1;//不在第一列
if(i>4)num[i-4]^=1;//不在第一行
if(i<13)num[i+4]^=1;//不在最后一行
}
void bfs(int j,int now,int all)//枚举过程,j指到了第几个棋子,now指现在翻转的次数,all指这一轮应当翻转的总次数(1-16)
{
int i;
if(now==all)//翻转次数到这一轮最大值
{
k=pd();
return;
}
for(i=j+1; i<=16; i++)//广搜本质
{
fz(i);
bfs(i,now+1,all);
if(k) return;
fz(i);//还原。
}
}
int main()
{
char a;
int i;
ios::sync_with_stdio(false);
for(i=1; i<=16; i++)
{
cin>>a;
if(a=='w')
num[i]=1;
}
k=pd();
if(k)cout<<0<<endl;
else
{
for( i=1; i<=16; i++)//一次遍历找出最小翻转次数
{
k=0;
bfs(0,0,i);
if(k)break;
}
if(k)cout<<i<<endl;
else cout<<"Impossible"<<endl;
}
return 0;
}

简述计算机启动过程

发表于 2018-04-14 | 分类于 计算机基础学习

第一步:BIOS

前提:“只读内存”ROM发明后,开机程序刷入ROM,该程序叫做“基本输入输出系统”简称BIOS

1、计算机通电后首先读取ROM中的开机程序

​ 细节:电源刚开始供电时,电压还不稳定,主板控制芯片向CPU发出一个reset(重置)信号,让CPU初始化,稳定供电后,芯片撤去reset信号,CPU会自动的将其CS寄存器设定为0xFFFF,将其IP寄存器设定为0x0000。由于CS:IP指出了下一条指令的地址,因此CPU会跳到0xFFFF:0x0000处开始执行命令,而它只是存放一条跳转指令,跳转到BIOS可执行代码区。

2、BIOS程序首先加电自检POST,就是查看计算机关键硬件能否满足运行的基本条件

​ 细节:因为POST检测过程在显卡初始化之前,如果发现错误是无法通过屏幕显示的,所以当POST自检中发现致命错误,是通过不同含义的声音(长短和次数)警告,然后启动终止。在正常情况下,POST过程进行得非常快,几乎无法感觉到它的存在,POST结束之后就会调用其它代码来进行更完整的硬件检测。

3、接下来BIOS将查找其他设备的BIOS

​ 细节:首先查找显卡的BIOS,这时多数显卡会在屏幕上显示一些初始信息,如生产厂商、图形芯片类型等内容。接着查找完所有其他设备的BIOS 之后,系统BIOS 将显示出自己的启动画面,包括系统BIOS的类型、序列号和版本号等内容,同时屏幕底端左下角会出现主板信息代码,包含bios的日期、主板芯片组型号、主板的识别编码及厂商代码等。

4、最后BIOS 进行其他检测

​ 细节:首先检测cpu的类型和工作频率,并将检测结果显示在屏幕上,然后系统BIOS开始测试主机所有的内存容量,并同时在屏幕上显示内存测试的数值,接下来开始检测系统中安装的一些标准硬件设备,这些设备包括硬盘、cd-rom、软驱等设备。标准设备检测完后,系统BIOS内部的支持即插即用的代码将开始检测和配置系统中安装的即插即用设备,每找到一个设备之后,系统bios都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、dma通道和i/0端口等资源。

所有硬件检测配置完后,。

##第二步:

待续未完。。。

linux介绍及基于win10的Ubuntu安装

发表于 2018-04-13 | 分类于 linux学习

linux入门知识

一、linux 历史及特性

​ linux是开放源代码的类Unix操作系统,诞生于1991年10月5日(第一次正式向外公布),由芬兰学生Linus Torvalds和后来陆续加入的众多爱好者共同开发完成。Linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议,可支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

  • UNIX

    UNIX是一个功能强大、性能全面的多用户、多任务操作系统。linux是借鉴 unix的优点或说是核心程序等开发的更贴近现在需要的操作系统。且 unix 是针对服务器的,linux 除了针对服务器,也更侧重了大众使用的操作系统,是一种外观和性能与UNIX相同或更好的操作系统,但Linux不源于任何版本的UNIX的源代码,并不是UNIX,而是一个类似于UNIX的产品。
    
  • GNU

    GNU是自由软件之父Richard Stallman在1984年组织开发的一个完全基于自由软件的软件体系,与此相应的有一分通用公共许可证(General Public License,简称GPL)。Linux以及与他有关的大量软件是在GPL的推动下开发和发布的。
    
  • BSD

    UNIX、Linux、BSD 都是计算机的操作系统。无论BSD还是Linux,都是Unix的分支,Linux系统和BSD的诞生都是来源于Unix,而且BSD更早于Linux。FreeBSD源代码通常以宽松的BSD许可证发布。它与Linux有很多相似的地方,但它们在很多方面仍有不同。
    
  • minix

    Minix是一种基于微内核架构的类Unix计算机操作系统,由Andrew S. Tanenbaum发明。Minix最初发布于1987年,开放全部源代码给大学教学和研究工作。2000年重新改为BSD授权,成为自由和开放源码软件,Linus Torvalds将MINIX作为平台和指导开发了MINIX的克隆---Linux,并且在1991年发布。
    
  • 主要特性

  1. 基本思想:系统中的所有都归结为一个文件,包括:命令、硬件和软件设备、操作系统、进程等等,对于操作系统内核而言,都被视为拥有各自特性或类型的文件。
  2. 完全免费:Linux是一款免费的操作系统,用户可以通过网络或其它途径免费获得,并可以任意修改其源代码。
  3. 完全兼容POSIX1.0标准:Linux下可以通过相应的模拟器运行常见的DOS、Windows的程序,这为用户从Windows转到Linux奠定了基础。
  4. 多用户,多任务:Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
  5. 友好的界面:Linux同时具有字符界面和图形界面,在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。
  6. 支持多平台:Linux可以运行在多种硬件平台上,如:具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。

二、常用linux版本介绍

  • Ubuntu

    ​ Ubuntu是全球热门的Linux发行版,也是各种推荐入门Linux爱好者安装的一个Linux发行版。Ubuntu是基于Debian的unstable版本加强而来,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。易于安装,硬件检测无可匹敌,界面非常友好,容易上手,是最适合做桌面系统的Linux发行版本。

  • Linux Mint

    ​ Linux Mint 基于Ubuntu 11.10,修复了大量Bug,更加稳定与简洁,是目前Distrowatch排行榜上第一名的Linux发行版。继承了Ubuntu的众多优点,同时也在Ubuntu的基础上加入很多自己优秀的特性。它提供浏览器插件、多媒体编解码器、对DVD播放的支持、Java和其他组件,与Ubuntu软件仓库完全兼容。

  • Redhat

    ​ Redhat是最成熟的一种Linux发行版,可以说是在国内使用人群最多 的Linux版本,Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用。

  • Debian

    ​ Debian是社区类Linux的典范,几大基础发行版之一,Ubuntu就是基于Debian的。是迄今为止最遵循GNU规范 的Linux系统。默认不包含任何专有驱动,软件包通常选择比较稳定的版本而不是最新的版本,所以上面的软件包大部分都比较过时,但是 稳定和安全性都非常的高。

除此之外,还有很多的linux版本,比如kali,Peppermint OS等等,各自都有自己的特长和用途,感兴趣可以自己查阅安装。

三、linux Ubuntu各版本的区别

前提:Ubuntu命名规则:前两位数字为发行时的年份年份的最后两位数字,后两位为发行的月份,中间以一个英文小数点隔开。

  • Ubuntu官方的各种版本特点:

  1:Desktop版本:desktop是live cd的名字,什么是live cd?live cd是一个刻录在光盘上的操作系统,我们并不需要硬盘就可以直接在光盘上运行这个操作系统。里面也已经集成了很多软件,我们一般可以把这个系统安装到硬盘上,类似于ghost系统,安装速度会比较快。这个版本提供了向导的图形界面的方式,让你一步步来轻松地安装ubuntu(一般都安装这个系统的32位i386版本).

  2:Alternate版本:是一个最标准的安装版本,采用文本安装界面,里面有很多高级选项,可以安装desktop,也可以安装server版,适合比较高要求的人来安装,安装速度比desktop版慢,但是运行时的效率比desktop版本快。

  3:Netbook版本:专门为上网本定制和优化,最近的版本采用了Unity,为小屏幕提供了一种美观的用户界面,采用了大图标设计,让用户更容易寻找各种应用程序。

  5:DVD版本:里面包括Desktop和Alternate两种安裝模式,同时集成更多的软件和完整的语言包,假如你没有联网可以选择下这个版本。

  6:Minimal版本:安装ubuntu的最小镜像版本。

  • Ubuntu各版本号整理

ps.收集信息纯属兴趣,安装也不是最新版就好,稍旧一点点的版本教程会比较多,前人会帮你填上很多坑,目前来说16.04/16.10最合适。

1、Ubuntu 4.10 (Warty Warthog,长疣的疣猪)

Ubuntu 4.10 在 2004年10月发布,是 Ubuntu 的第一个版本,支持到 2006年04月。

2、Ubuntu 5.04 (Hoary Hedgehog,灰白的刺猬)

2005年04月发布,支持到 2006年10月。

3、Ubuntu 5.10 (Breezy Badger,活泼的獾子)

2005年10月发布,支持到 2007年04月。

4、Ubuntu 6.06LTS (Dapper Drake,帅气的公鸭)

Ubuntu 的第一个长期支持版本,发布于 2006年06月。长期支持版为桌面提供三年支持,服务器则是五年。普通版本则只支持 18 个月。更长的支持周期意味着更长的保障,让大规模部署 Ubuntu 更加可行。桌面支持到 2009年06月,服务器支持到 2011年06月。

5、Ubuntu 6.10(Edgy Eft,急躁的水蜥)

2006年10月发布。这个版本保证了启动过程的稳定和完整,支持到 2007年04月。

6、Ubuntu 7.04(Feisty Fawn,烦躁的小鹿)

2007年04月发布,重点改进了网络漫游模式,支持到 2008年10月。

7、Ubuntu 7.10(Gutsy Gibbon,胆大的长臂猿)

2007年10月发布,支持到 2009年04月。主要特性包括:默认支持绚丽的视觉效果,快速用户切换,打印机自动检测和更简单的桌面文件搜索和追踪。

8、Ubuntu 8.04LTS (Hardy Heron,坚强的苍鹭)

2008年04月发布,是 Ubuntu 的第二个长期支持版本。桌面支持到 2011年04月,服务器支持到 2013年04月。

9、Ubuntu 8.10(Intrepid Ibex,无畏的野山羊)

2008年10月发布,包括上百项改进和完整的 3G 支持。支持到 2010年04月。

10、Ubuntu 9.04(Jaunty Jackalope,得意洋洋的怀俄明野兔).

2009年04月发布。将云计算带到入 Ubuntu 社区。支持到 2010年10月。

11、Ubuntu 9.10(Karmic Koala,幸运的考拉)

2009年10月发布,支持到2011年04月。

12、Ubuntu 10.04(Lucid Lynx,清醒的猞猁)

计划于 2010年04月发布,是 Ubuntu 的第三个长期支持版,桌面支持到 2013年04月,服务器支持到 2015年04月。

13、Ubuntu 10.10( Maverick Meerkat,狐獴国度)

14、Ubuntu 11.04 (Natty Narwhal,聪慧的独角鲸)

15、Ubuntu 11.10 (Oneiric Ocelot,梦幻般的虎猫)

Oneiric 的含义是 “dreamy [梦想的]”, 与虎猫 ( Ocelot ) 相结合的用意是要时刻提醒我们,创新之道是:部分是幻想,部分是科学。我们需要紧跟在各条战线上的创新步伐,我们的桌面系统将变得更加新潮漂亮,并且在下一个发行版将变得更加完善,除了提供基于 OpenGL 的 Unity 界面外,还会用 2D 界面给于相应的补充。同时, QT 的引入也意味着可以给用户及开发者更多的选择。

16、Ubuntu 12.04(Precise Pangolin,一丝不苟的穿山甲)

属于LTS版本,也就是长期支持版本,每2年发布一个长期支持版本,LTS 桌面版本可以得到3年的升级支持,而服务器版本可以得到5年支持。ubuntu 12.04 将于 2012 年 4 月发布。为何是Precise Pangolin Mark Shuttleworth解释道: “Ubuntu 12.04 是一款长期支持版本,所以我们对Ubuntu 12.04的期望就是它能够长久、稳定、硬如磐石、雷打不动。”

17、Ubuntu 12.10 (Quantal Quetzal)

。。。。。。太多了,我不找了。

linux Ubuntu安装教程

PS.这是通过制作U盘启动来安装Linux系统的具体操作方法

一、准备

1.准备好U盘一个 //U盘最好8G以上,记得把U盘上的资料都存好:happy:

2.下载好Ubuntu16.10版系统镜像:http://releases.ubuntu.com/16.10/ubuntu-16.10-desktop-amd64.iso

3.下载安装好UltralSO:https://www.baidu.com/link?url=U4pbu7q1bQF6kAzx_a6U9kYUljQy-I3KvarpyLHeuVZLurUApeJUjSmu8I91v_UMroSfhHta7KdpvcsPPxc0yWbTeheRIO31wGlgvCWQ_WS&wd=&eqid=a5bc849b0005efc4000000025acf4c2c

​ (1).一路默认安装就可以//别装C 盘

​ (2).运行时在欢迎界面选择“继续试用”即可

1

4.系统分区(进阶安装才需要,初学15G到50G左右都可以,当然更大也没问题)具体教程在这:https://www.disktool.cn/jiaocheng/how-to-partition-win10.html

二、制作U盘

1.U盘插入电脑,打开UltraSO

2.点击“文件”,点击“打开”,打开下载好Ubuntu系统镜像

2

3.点击“启动”,点击“写入硬盘镜像”,在弹出的界面选择“格式化”

3

4.在“格式化”窗口点击“开始”,结束后回到上图所示“写入硬盘镜像”界面,点击“写入”

4

完成后显示“刻录成功!“

5

三、最简单的默认安装

1.首先要关闭电脑的Secure Boot:

​ 1、在开机界面按住F2进入BIOS

​ 2、选择”Boot”,选择”Secure Boot”,选择”Disabled”

6

​ 3、按F10,选择”Yes”

7

2.开始安装

在开机界面按F12 //不同电脑可能会有差别

8

选择从U盘启动

9

选择”Install Ubuntu”!

10

接下来选择语言,然后在准备安装Ubuntu界面不进行勾选,直接选择“继续”

11

选择第一个安装类型,继续

12

选择磁盘后安装(如果Ubuntu和Windows安装在同一块硬盘内,则此时安装向导将要求你为Ubuntu划分一部分硬盘空间)

13

确认无误后继续

14

接下来时区选”shanghai”,如果语言选中文,键盘一般默认”chinese”,然后输入信息可以随意,但要记住密码

15

下一步愉快的安装

16

最后重启电脑就可以看见选择系统的界面了

17

linux入坑第一步达成!

四、进阶版安装

从安装类型开始,选择”其他选项”

1

然后在界面找到分区好的空白盘,首先分出根目录,点击下方”+”号,大小根据磁盘大小决定,”主分区”,”空间起始位置”,挂载点”/“

然后继续找到空白盘,设置Swap分区

接下来设置/home分区

最后设置/boot分区,挂载点”/boot”,类型位置用途与’’/home’’相同。

至于合理的硬盘分区,需要进一步学习:https://www.cnblogs.com/pangguoming/p/4584846.html

接下来点击现在安装,后面的步骤相同,比较自由的Ubuntu进阶安装就完成啦。

学习参考借鉴来自:https://www.ithome.com/html/win10/303077.htm

​ https://blog.csdn.net/liang19890820/article/details/51868167#历史

​ https://www.linuxidc.com/Linux/2016-08/133958.htm

​ https://www.cnblogs.com/goolee/articles/6358019.html

kyj

something interesting

6 日志
3 分类
RSS
Links
  • 大绵羊
© 2018 kyj
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4
博客全站共6.4k字