最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C/C++后端學(xué)習(xí)與練習(xí)深入

 更新時(shí)間:2022年07月22日 16:01:14   作者:算法小學(xué)徒  
這篇文章主要介紹了C/C++對(duì)于后端的學(xué)習(xí)與練習(xí),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、算法訓(xùn)練

首先給大家?guī)?lái)校招程序員考察的核心技能訓(xùn)練:算法,不管你用什么語(yǔ)言,

數(shù)據(jù)結(jié)構(gòu)與算法一定是最核心的基本功。說(shuō)得實(shí)際和功利一點(diǎn), 算法是你進(jìn)入大廠的敲門(mén)磚,還能幫你在工作中快速地彎道超車(chē), 所以一定得搞懂哦~~~ 另外現(xiàn)在現(xiàn)在大廠的筆試很多采用ACM模式,面試手撕代碼則多為力扣模式 (核心代碼模式)今天給大家?guī)?lái)中大廠筆試訓(xùn)練

1.拓?fù)漤樞?/h3>

這是 2018 年研究生入學(xué)考試中給出的一個(gè)問(wèn)題:

以下哪個(gè)選項(xiàng)不是從給定的有向圖中獲得的拓?fù)湫蛄校?/p>

現(xiàn)在,請(qǐng)你編寫(xiě)一個(gè)程序來(lái)測(cè)試每個(gè)選項(xiàng)。
輸入格式
第一行包含兩個(gè)整數(shù) N 和 M,分別表示有向圖的點(diǎn)和邊的數(shù)量。

接下來(lái) M 行,每行給出一條邊的起點(diǎn)和終點(diǎn)。

點(diǎn)的編號(hào)從 1 到 N。

再一行包含一個(gè)整數(shù) K,表示詢問(wèn)次數(shù)。

接下來(lái) K 行,每行包含一個(gè)所有點(diǎn)的排列。

一行中的數(shù)字用空格隔開(kāi)。

輸出格式
在一行中輸出所有不是拓?fù)湫蛄械脑儐?wèn)序列的編號(hào)。

詢問(wèn)序列編號(hào)從 0 開(kāi)始。

行首和行尾不得有多余空格,保證存在至少一個(gè)解。

數(shù)據(jù)范圍
1≤N≤1000,
1≤M≤10000,
1≤K≤100
輸入樣例:
6 8
1 2
1 3
5 2
5 4
2 3
2 6
3 4
6 4
5
1 5 2 3 6 4
5 1 2 6 3 4
5 1 2 3 6 4
5 2 1 6 3 4
1 2 3 4 5 6
輸出樣例:
3 4

解析:首先了解一下拓?fù)渑判虻亩x:在圖論中,拓?fù)渑判颍═opological Sorting)是一個(gè)有向無(wú)環(huán)圖(DAG, Directed Acyclic Graph)的所有頂點(diǎn)的線性序列。且該序列必須滿足下面兩個(gè)條件:

1.每個(gè)頂點(diǎn)出現(xiàn)且只出現(xiàn)一次。

2.若存在一條從頂點(diǎn) A 到頂點(diǎn) B 的路徑,那么在序列中頂點(diǎn) A 出現(xiàn)在頂點(diǎn) B 的前面。

有向無(wú)環(huán)圖(DAG)才有拓?fù)渑判颍荄AG圖沒(méi)有拓?fù)渑判蛞徽f(shuō)。

//這題根據(jù)條件性質(zhì)解題即可
#include<bits/stdc++.h>
using namespace std;
const int N=10050;
int nodes[N],a[N],b[N],p[N];
int n,m;
int main()
{
	cin>>n>>m;
	int i,j;
    for(i=0;i<m;i++)
	{
		cin>>a[i]>>b[i];
	}
	int k;
	cin>>k;
	bool flag;
	vector<int> v;
	for(i=0;i<k;i++)
	{
		 flag=1;
		 for(j=1;j<=n;j++) 
		 {
		 	cin>>nodes[j];
		 	p[nodes[j]]=j;
		 }
		 for(j=0;j<m;j++)
		{
			if(p[a[j]]>p[b[j]])
			flag=0;
		}
		if(!flag)
		v.push_back(i);
	}
	for(i=0;i<v.size();i++)
	{
		if(i==0) cout<<v[i];
		else cout<<" "<<v[i];
	}
    cout<<endl;
}

2.功夫傳人

//這題用鄰接表存儲(chǔ)一下信息,然后再dfs配合回溯即可
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+50;
vector<int> v[N];
int n,st[N];
double z,r,sum;
void dfs(int u,double p)
{
	if(st[u]) 
	{
		sum+=p*v[u][0];
		return;
	}
	for(int i=0;i<v[u].size();i++)
	dfs(v[u][i],p*(1-r/100));
}
int main()
{
    cin>>n>>z>>r;
    int i,x;
    for(i=0;i<n;i++)
    {
      int k;
      cin>>k;
      if(k==0)  
      {
      	 st[i]=1;
      	 cin>>x;
         v[i].push_back(x);
	  }
      else
     {
      while(k--)
      {
        cin>>x;
        v[i].push_back(x);
	  }
      }
    }
    dfs(0,z);
    cout<<(int)sum;
}

3.二叉樹(shù)中的最低公共祖先

樹(shù)中兩個(gè)結(jié)點(diǎn) U 和 V 的最低公共祖先(LCA)是指同時(shí)具有 U 和 V 作為后代的最深結(jié)點(diǎn)。

給定二叉樹(shù)中的任何兩個(gè)結(jié)點(diǎn),請(qǐng)你找到它們的 LCA。

輸入格式
第一行包含兩個(gè)整數(shù) M 和 N,分別表示詢問(wèn)結(jié)點(diǎn)對(duì)數(shù)以及二叉樹(shù)中的結(jié)點(diǎn)數(shù)量。

接下來(lái)兩行,每行包含 N 個(gè)不同的整數(shù),分別表示二叉樹(shù)的中序和前序遍歷。

保證二叉樹(shù)可由給定遍歷序列唯一確定。

接下來(lái) M 行,每行包含兩個(gè)整數(shù) U 和 V,表示一組詢問(wèn)。

所有結(jié)點(diǎn)權(quán)值均在 int 范圍內(nèi)。

輸出格式
對(duì)于每對(duì)給定的 U 和 V,輸出一行結(jié)果。

如果 U 和 V 的 LCA 是 A,且 A 不是 U 或 V,則輸出 LCA of U and V is A.

如果 U 和 V 的 LCA 是 A,且 A 是 U 或 V 中的一個(gè),則輸出 X is an ancestor of Y.其中 X 表示 A,Y 表示另一個(gè)結(jié)點(diǎn)。

如果 U 或 V 沒(méi)有在二叉樹(shù)中找到,則輸出 ERROR: U is not found. 或 ERROR: V is not found. 或 ERROR: U and V are not found.

數(shù)據(jù)范圍
1≤M≤1000,
1≤N≤10000
輸入樣例:
6 8
7 2 3 4 6 5 1 8
5 3 7 2 6 4 8 1
2 6
8 1
7 9
12 -3
0 8
99 99
輸出樣例:
LCA of 2 and 6 is 3.
8 is an ancestor of 1.
ERROR: 9 is not found.
ERROR: 12 and -3 are not found.
ERROR: 0 is not found.
ERROR: 99 and 99 are not found.

//常規(guī)方法建樹(shù)再按題目要求做即可
#include<bits/stdc++.h>
using  namespace std;
const int N=1e4+50;
int m,n;
int in[N],pre[N],depth[N],p[N];
int build(int il,int ir,int pl,int pr,int d)
{
	int root=pre[pl];
	int k=root;
	depth[root]=d;
	if(il<k) p[build(il,k-1,pl+1,pl+1+(k-1-il),d+1)]=root;
	if(k<ir) p[build(k+1,ir,pl+1+(k-1-il)+1,pr,d+1)]=root;
	return root;
}
unordered_map<int,int> pos;
int main()
{
	cin>>m>>n;
	int i;
	for(i=0;i<n;i++)
   {
   	  cin>>in[i];
   	  pos[in[i]]=i;
   }
   for(i=0;i<n;i++)
   {
   	  cin>>pre[i];
   	  pre[i]=pos[pre[i]];
   }
   int a,b,x,y;
   build(0,n-1,0,n-1,0);
   while(m--)
   {
     	cin>>a>>b;
	    x=a,y=b;
	    if(pos.count(a)&&pos.count(b))
	    {
	    	a=pos[a],b=pos[b];
	    	x=a,y=b;
	          while(a!=b)
	    	{
	    		if(depth[a]>depth[b])
	    		a=p[a];
	    		else
	    		b=p[b];
			}
			if(a!=x&&a!=y)
			printf("LCA of %d and %d is %d.\n",in[x],in[y],in[a]);
			else if(a==x)
			printf("%d is an ancestor of %d.\n",in[x],in[y]);
			else
			printf("%d is an ancestor of %d.\n",in[y],in[x]);
		}
		else if(pos.count(a)==0&&pos.count(b)==0)
		printf("ERROR: %d and %d are not found.\n",x,y);
		else if(pos.count(a)==0)
		printf("ERROR: %d is not found.\n",x);
		else
		printf("ERROR: %d is not found.\n",y);
   }
}

二、工程項(xiàng)目訓(xùn)練

項(xiàng)目&實(shí)習(xí)對(duì)于秋招來(lái)說(shuō)意義重大,一份好的實(shí)習(xí)可以讓招聘方看到你的工作能力:

Tips:工作能力:工作能力指的是你工作相關(guān)的能力,是在目標(biāo)崗位上的專業(yè)能力,通過(guò)實(shí)習(xí)可以積累你的實(shí)戰(zhàn)經(jīng)驗(yàn),也可以向公司表明你在實(shí)際工作中的實(shí)操能力。

但是沒(méi)有實(shí)習(xí)也并不代表你秋招無(wú)法找到一份好的工作:

你可以將在校期間的社團(tuán)、競(jìng)賽等相關(guān)在校經(jīng)歷補(bǔ)充在簡(jiǎn)歷上;另外如果掌握某種和工作相關(guān)的知識(shí)或技能,也要盡可能寫(xiě)得詳細(xì)一些,一定要表明你是如何把上述這些知識(shí)技能運(yùn)用于工作中的。這樣可以表現(xiàn)出你很善于學(xué)習(xí)新知識(shí)的特點(diǎn),給自己加印象分。另外要勤做項(xiàng)目,使自己的項(xiàng)目經(jīng)歷與自己求職的目標(biāo)崗位相契合,當(dāng)我們能在簡(jiǎn)歷中通過(guò)自己過(guò)往的經(jīng)歷證明自己的能力優(yōu)勢(shì),并且這個(gè)能力優(yōu)勢(shì)又是企業(yè)需要的,那么我們拿到面試機(jī)會(huì)的可能性就會(huì)很大。

下面由小學(xué)徒給大家?guī)?lái)Qt的項(xiàng)目學(xué)習(xí)秘籍,希望大家喜歡。

day1.Qt(串口的使用)

這里必須夸下Qt Creator的幫助(不同于其他IDE幫助需要聯(lián)網(wǎng))

學(xué)習(xí)圖形界面開(kāi)發(fā),肯定離不開(kāi)幫助文檔的使用,因?yàn)樗幌?C 語(yǔ)言那樣就那么幾個(gè)函數(shù)接口(api),圖形接口的接口可以用海量來(lái)形容,但我們只需要記住常用的幾個(gè)即可,君子性非異也,善假于物也。

大家要善于借助外物的力量,遇到不熟悉的直接去幫助文擋查看用法。

我們?cè)谌粘J褂弥惺褂?Qt 幫助文檔,有幾個(gè)需要關(guān)注的點(diǎn):

1)類(lèi)使用的相關(guān)介紹

2)查看部件的信號(hào)

3)查看部件的事件(其所對(duì)應(yīng)的虛函數(shù)如何編寫(xiě))

4)查看所用部件(類(lèi))的相應(yīng)成員函數(shù)(功能,參數(shù),返回值)

1)類(lèi)使用的相關(guān)介紹

Qt另一個(gè)方便之處在于光標(biāo)移動(dòng)到類(lèi)名字的地方,接著按“F1”即可跳轉(zhuǎn)到所對(duì)應(yīng)的幫助文件:

可將光標(biāo)移到類(lèi)名字這里,然后按F1即可跳轉(zhuǎn)到所對(duì)應(yīng)的幫助文檔。

2)查看部件的信號(hào)

以QplainTextEdit(純文本輸入框)為例我們來(lái)看到它的公有函數(shù) 

公有函數(shù):共有成員可以被程序中的任何代碼訪問(wèn)等等

Summary:Qt上手還是非常的容易,自帶的幫助文檔中的內(nèi)容非常詳細(xì),還有示例代碼,如果想著重學(xué)習(xí)UI的話:Qt Designer能讓你通過(guò)以拖動(dòng)控件放置的方式,可視化的設(shè)計(jì)UI界面,當(dāng)你設(shè)計(jì)好界面編譯完成后,在構(gòu)建目錄中會(huì)找到文件名形如“ui_XXXX.h”的頭文件,這是Qt根據(jù)你的UI,自動(dòng)幫你生成的C++代碼,內(nèi)容就是UI的C++實(shí)現(xiàn)方式,大家可以跟著它自動(dòng)生成的這段代碼學(xué)來(lái)學(xué)習(xí)UI是怎么實(shí)現(xiàn)的,這個(gè)比自己看文檔要來(lái)的直觀很多。而且對(duì)于初學(xué)者來(lái)說(shuō)一個(gè)可拖拽位置可改變尺寸的有趣窗口要比一個(gè)黑框控制臺(tái)程序要有意思的多。

三、總結(jié)

到此這篇關(guān)于C/C++后端學(xué)習(xí)與練習(xí)深入的文章就介紹到這了,更多相關(guān)C++后端內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++ LeetCode1945題解字符串轉(zhuǎn)化后的各位數(shù)字之和

    C++ LeetCode1945題解字符串轉(zhuǎn)化后的各位數(shù)字之和

    這篇文章主要為大家介紹了C++ LeetCode1945題解字符串轉(zhuǎn)化后的各位數(shù)字之和示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 北郵計(jì)算機(jī)考研復(fù)試題的C語(yǔ)言解答精選

    北郵計(jì)算機(jī)考研復(fù)試題的C語(yǔ)言解答精選

    這篇文章主要介紹了北郵計(jì)算機(jī)考研復(fù)試題目的C語(yǔ)言解答精選,選自2012年的一些基礎(chǔ)的上機(jī)題目,需要的朋友可以參考下
    2015-08-08
  • C++ Boost Exception超詳細(xì)講解

    C++ Boost Exception超詳細(xì)講解

    Boost是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱。Boost庫(kù)是一個(gè)可移植、提供源代碼的C++庫(kù),作為標(biāo)準(zhǔn)庫(kù)的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開(kāi)發(fā)引擎之一,是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱
    2022-11-11
  • OpenGL實(shí)現(xiàn)3D空間中移動(dòng)圖像

    OpenGL實(shí)現(xiàn)3D空間中移動(dòng)圖像

    這篇文章主要為大家詳細(xì)介紹了OpenGL實(shí)現(xiàn)3D空間中移動(dòng)圖像,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • C++求兩數(shù)之和并返回下標(biāo)詳解

    C++求兩數(shù)之和并返回下標(biāo)詳解

    這篇文章主要介紹了C++求兩數(shù)之和并返回下標(biāo)題目的代碼詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 關(guān)于c++ 智能指針及 循環(huán)引用的問(wèn)題

    關(guān)于c++ 智能指針及 循環(huán)引用的問(wèn)題

    下面小編就為大家?guī)?lái)一篇關(guān)于c++ 智能指針及 循環(huán)引用的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • C++下標(biāo)運(yùn)算符詳解

    C++下標(biāo)運(yùn)算符詳解

    C語(yǔ)言中的下標(biāo)運(yùn)算符用于訪問(wèn)數(shù)組或指針變量中的元素,它使用方括號(hào) [] 來(lái)表示,并在方括號(hào)內(nèi)指定元素的索引位置,本文給大家詳細(xì)的講解一下C++的下標(biāo)運(yùn)算符,需要的朋友可以參考下
    2023-09-09
  • Linux?C/C++?timeout命令實(shí)現(xiàn)運(yùn)行具有時(shí)間限制功能

    Linux?C/C++?timeout命令實(shí)現(xiàn)運(yùn)行具有時(shí)間限制功能

    inux?timeout命令的一個(gè)屬性是時(shí)間限制??梢詾槿魏蚊钤O(shè)置時(shí)間限制。如果時(shí)間到期,命令將停止執(zhí)行,這篇文章主要介紹了Linux?C/C++?timeout命令實(shí)現(xiàn)(運(yùn)行具有時(shí)間限制),需要的朋友可以參考下
    2023-02-02
  • C語(yǔ)言文件復(fù)制實(shí)例詳解

    C語(yǔ)言文件復(fù)制實(shí)例詳解

    這篇文章主要介紹了C語(yǔ)言文件復(fù)制實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • OpenCV4.1.0+VisualStudio2019開(kāi)發(fā)環(huán)境搭建(超級(jí)簡(jiǎn)單)

    OpenCV4.1.0+VisualStudio2019開(kāi)發(fā)環(huán)境搭建(超級(jí)簡(jiǎn)單)

    這篇文章主要介紹了OpenCV4.1.0+VisualStudio2019開(kāi)發(fā)環(huán)境搭建(超級(jí)簡(jiǎn)單),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評(píng)論

观塘区| 涟水县| 神农架林区| 临澧县| 桐柏县| 旬邑县| 福安市| 谢通门县| 翼城县| 辉县市| 灵川县| 新源县| 外汇| 微山县| 会昌县| 宁化县| 将乐县| 泰来县| 分宜县| 海伦市| 葵青区| 红原县| 湖州市| 玛沁县| 湖南省| 景宁| 屏东市| 彰化县| 玉溪市| 永新县| 中宁县| 阿克苏市| 措勤县| 闵行区| 邵东县| 深泽县| 金溪县| 电白县| 弥渡县| 德令哈市| 浦城县|