17校招真題題集(3)11-15

注:本系列題目全是按照通過率降序來排列的,基本保證題目難度遞增。

?

11、

題目名稱:買蘋果

來源:網易

題目描述

小易去附近的商店買蘋果,奸詐的商販使用了捆綁交易,只提供6個每袋和8個每袋的包裝(包裝不可拆分)。 可是小易現在只想購買恰好n個蘋果,小易想購買盡量少的袋數方便攜帶。如果不能購買恰好n個蘋果,小易將不會購買。

輸入描述:

輸入一個整數n,表示小易想購買n(1 ≤ n ≤ 100)個蘋果

輸出描述:

輸出一個整數表示最少需要購買的袋數,如果不能買恰好n個蘋果則輸出-1

示例1

輸入

20

輸出

3

分析:貪心:肯定8個一袋的越多越好,到了最后分情況判斷即可

n=int(input())
q=0
while n>24:n-=8q+=1
if n==24 or n==18 or n==20 or n==22:print(q+3)
elif n==12 or n==16 or n==14:print(q+2)
elif n==6 or n==8:print(q+1)
else:print("-1")

另一種思路:動態規劃/背包。

可以去我動態規劃系列文章找。https://blog.csdn.net/hebtu666/article/details/81777273

?

12、

問題名稱:素數對

來源:騰訊

題目描述

給定一個正整數,編寫程序計算有多少對質數的和等于輸入的這個正整數,并輸出結果。輸入值小于1000。
如,輸入為10, 程序應該輸出結果為2。(共有兩對質數的和為10,分別為(5,5),(3,7))

輸入描述:

輸入包括一個整數n,(3 ≤ n < 1000)

輸出描述:

輸出對數

示例1

輸入

10

輸出

2

分析:這種數據范圍直接暴力即可。先找素數,然后在素數里找合是n的數對

n=int(input())
l=[2]
for i in range(3,1000)://找素數q=1for j in range(2,i):if i%j==0:q=0breakif q==1:l.append(i)
s,k=0,0
for i in l://找素數對for j in l:if i+j==n:s+=1//所有的if i==j://相同的k+=1
print((s+k)//2)

?

13、

問題名稱:不要二

來源:網易

題目描述

二貨小易有一個W*H的網格盒子,網格的行編號為0~H-1,網格的列編號為0~W-1。每個格子至多可以放一塊蛋糕,任意兩塊蛋糕的歐幾里得距離不能等于2。
對于兩個格子坐標(x1,y1),(x2,y2)的歐幾里得距離為:
( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算術平方根
小易想知道最多可以放多少塊蛋糕在網格盒子里。

輸入描述:

每組數組包含網格長寬W,H,用空格分割.(1 ≤ W、H ≤ 1000)

輸出描述:

輸出一個最多可以放的蛋糕數

示例1

輸入

3 2

輸出

4

分析:找規律:

所謂歐幾里得距離不能等于二,因為行列都為整數,所以只可能是某一列坐標相等而行坐標相差2,或者行坐標相等而列坐標相差2。

就這么擺唄

l=(input().split())
m=int(l[0])
n=int(l[1])
//橫豎一個一個分邊界情況
if m%4==0:kk=mgg=m
elif m%4==1:kk=m+1gg=m-1
elif m%4==2:kk=m+2gg=m-2
elif m%4==3:kk=m+1gg=m-1
if n%4==0:a=(n/4)*(kk+gg)
elif n%4==1:a=((n-1)/4)*(kk+gg)+kk/2
elif n%4==2:a=((n-2)/4)*(kk+gg)+kk
elif n%4==3:a=((n-3)/4)*(kk+gg)+kk+gg/2
print(int(a))

?其實不需要找規律,遞推也可以
定義一個數組a[1000][1000],初始值都為0,從a[0][0]開始,將a[0][2]和a[2][0]置為-1,遍歷數組,不是-1的地方可以放蛋糕

#include<iostream>
using namespace std;
int a[1000][1000] = {0};
int main()
{int w,h,res = 0;cin >> w >> h;for(int i=0;i<w;i++){for(int j=0;j<h;j++){if(a[i][j]==0){res++;if((i+2)<w) a[i+2][j] = -1;if((j+2)<h) a[i][j+2] = -1;}}}cout << res;return 0;
}

?

14、

問題名稱:統計回文

來源:網易

題目描述

“回文串”是一個正讀和反讀都一樣的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜歡這種擁有對稱美的回文串,生日的時候她得到兩個禮物分別是字符串A和字符串B。現在她非常好奇有沒有辦法將字符串B插入字符串A使產生的字符串是一個回文串。你接受花花的請求,幫助她尋找有多少種插入辦法可以使新串是一個回文串。如果字符串B插入的位置不同就考慮為不一樣的辦法。
例如:
A = “aba”,B = “b”。這里有4種把B插入A的辦法:
* 在A的第一個字母之前: "baba" 不是回文?
* 在第一個字母‘a’之后: "abba" 是回文?
* 在字母‘b’之后: "abba" 是回文?
* 在第二個字母'a'之后 "abab" 不是回文?
所以滿足條件的答案為2

輸入描述:

每組輸入數據共兩行。
第一行為字符串A
第二行為字符串B
字符串長度均小于100且只包含小寫字母

輸出描述:

輸出一個數字,表示把字符串B插入字符串A之后構成一個回文串的方法數

示例1

輸入

aba
b

輸出

2

?

分析:直接按題意模擬一下即可。

python

a=input()
b=input()
kk=0
for i in range(len(a)+1):gg=a[0:i]+b+a[i:]if gg==gg[::-1]:kk+=1
print(kk)

c++

#include<iostream>
#include<string>
using namespace std;
bool Huiwen(string str1)   //判斷回文{int length=str1.length();for(int i=0;i<length;i++){if(str1[i]!=str1[length-1])return false;length=length-1;}return true;}
int main(){string str1,str2,temp;int count,len;while(cin>>str1>>str2){count = 0;temp=str1;len=str1.length()+1;for(int i=0;i<len;i++){str1=temp;str1.insert(i,str2);   //在A字符串中以此插入B字符串if(Huiwen(str1))       //判斷是否是回文count=count+1;    //統計回文    }cout<<count<<endl;}return 0;}

?

15、

題目名稱:構造隊列

來源:網易有道

題目描述

小明同學把1到n這n個數字按照一定的順序放入了一個隊列Q中。現在他對隊列Q執行了如下程序:

while(!Q.empty())              //隊列不空,執行循環{int x=Q.front();            //取出當前隊頭的值xQ.pop();                 //彈出當前隊頭Q.push(x);               //把x放入隊尾x = Q.front();              //取出這時候隊頭的值printf("%d\n",x);          //輸出xQ.pop();                 //彈出這時候的隊頭}

做取出隊頭的值操作的時候,并不彈出當前隊頭。
小明同學發現,這段程序恰好按順序輸出了1,2,3,...,n。現在小明想讓你構造出原始的隊列,你能做到嗎?[注:原題樣例第三行5有錯,應該為3,以下已修正]

輸入描述:

第一行一個整數T(T ≤ 100)表示數據組數,每組數據輸入一個數n(1 ≤ n ≤ 100000),輸入的所有n之和不超過200000。

輸出描述:

對于每組數據,輸出一行,表示原始的隊列。數字之間用一個空格隔開,不要在行末輸出多余的空格.

示例1

輸入

4
1
2
3
10

輸出

1
2 1
2 1 3
8 1 6 2 10 3 7 4 9 5

?

分析:逆向考慮:

c++

#include <iostream>
#include <deque>
using namespace std;int main()
{int n, k;cin >> k;while(k > 0){deque<int> q;k--;cin >> n;for(int i = n; i > 0; i--){q.push_front(i);int t = q.back();q.pop_back();q.push_front(t);}for(int i = 0; i < q.size(); i++)cout << q[i] << " ";cout << endl;}
} 

python

nn=int(input())
sum=[]
for i in range(0,nn):n=int(input())line = list([j+1 for j in range(n)])res=[]while n:num=line.pop()res.insert(0,num)num = res.pop()res.insert(0,num)n-=1sum.append(res)
for res in sum:print(" ".join(list(map(str,res))))

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445588.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445588.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445588.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt學習:QDomDocument

QDomDocument類代表了一個XML文件 QDomDocument類代表整個的XML文件。概念上講&#xff1a;它是文檔樹的根節點&#xff0c;并提供了文檔數據的基本訪問方法。由于元素、文本節點、注釋、指令執行等等不可能脫離一個文檔的上下文&#xff0c;所以文檔類也包含了需要用來創建這些…

《事實:用數據思考,避免情緒化決策》筆記

文章目錄一分為二負面思維直線思維恐懼本能規模錯覺以偏概全命中注定單一視角歸咎他人情急生亂一分為二 要做到實事求是&#xff0c; 就要做到當你聽到一分為二的說法時&#xff0c; 你就能迅速認識到這種說法描述的是一種兩極分化的圖畫&#xff0c; 而兩極之間存在一道巨大的…

順序存儲線性表實現

在計算機中用一組地址連續的存儲單元依次存儲線性表的各個數據元素,稱作線性表的順序存儲結構。 順序存儲結構的主要優點是節省存儲空間&#xff0c;因為分配給數據的存儲單元全用存放結點的數據&#xff08;不考慮c/c語言中數組需指定大小的情況&#xff09;&#xff0c;結點之…

QT5生成.exe文件時,出現缺少QT5core.dll文件解決方法

在 http://qt-project.org/downloads 下載Qt SDK安裝需要Qt版本。在QtCreator下&#xff0c;程序可以正常運行&#xff0c;但是當關閉QtCreator后&#xff0c;在DeBug目錄下再運行相應的*.exe程序時&#xff0c;會提示缺少Qt5Core.dll錯誤。解決方法&#xff1a;添加電腦環境變…

《基于Java實現的遺傳算法》筆記(7 / 7):個人總結

文章目錄為何采用遺傳算法哪些問題適合用遺傳算法解決遺傳算法基本術語一般遺傳算法的過程基本遺傳算法的偽代碼為何采用遺傳算法 遺傳算法是機器學習的子集。在實踐中&#xff0c;遺傳算法通常不是用來解決單一的、特定問題的最好算法。對任何一個問題&#xff0c;幾乎總有更…

單鏈表不帶頭標準c語言實現

鏈表是一種物理存儲單元上非連續、非順序的存儲結構&#xff0c;數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點&#xff08;鏈表中每一個元素稱為結點&#xff09;組成&#xff0c;結點可以在運行時動態生成。每個結點包括兩個部分&#xff1a;一個是…

Java設計模式(4 / 23):單例模式

文章目錄單例模式的應用場景餓漢式單例模式懶漢式單例模式改進&#xff1a;synchronized改進&#xff1a;雙重檢查鎖改進&#xff1a;靜態內部類破壞單例用反射破壞單例用序列化破壞單例解密注冊式單例模式枚舉式單例模式解密容器式單例線程單例實現ThreadLocal單例模式小結參考…

約瑟夫環-(數組、循環鏈表、數學)

約瑟夫環&#xff08;約瑟夫問題&#xff09;是一個數學的應用問題&#xff1a;已知n個人&#xff08;以編號1&#xff0c;2&#xff0c;3...n分別表示&#xff09;圍坐在一張圓桌周圍。從編號為k的人開始報數&#xff0c;數到m的那個人出列&#xff1b;他的下一個人又從1開始報…

Ubuntu麒麟下搭建FTP服務

一.怎么搭建FTP服務&#xff1a; 第一步>>更新庫 linuxidclinuxidc:~$ sudo apt-get update 第二步>>采用如下命令安裝VSFTPD的包 linuxidclinuxidc:~$ sudo apt-get install vsftpd 第三步>>安裝完成后打開 /etc/vsftpd.conf 文件&#xff0c;按如下所述…

《數據結構上機實驗(C語言實現)》筆記(1 / 12):緒論

文章目錄驗證性實驗求1~n的連續整數和說明放碼結果常見算法時間函數的增長趨勢分析說明放碼結果設計性實驗求素數個數說明放碼結果求連續整數階乘的和說明放碼結果驗證性實驗 求1~n的連續整數和 說明 對于給定的正整數n&#xff0c;求12…n12…n12…n&#xff0c;采用逐個累…

線性表實現一元多項式操作

數組存放&#xff1a; 不需要記錄冪&#xff0c;下標就是。 比如1&#xff0c;2&#xff0c;3&#xff0c;5表示12x3x^25x^3 有了思路&#xff0c;我們很容易定義結構 typedef struct node{float * coef;//系數數組int maxSize;//最大容量int order;//最高階數 }Polynomial…

ubuntu下解壓縮zip,tar,tar.gz和tar.bz2文件

在Linux下面如何去壓縮文件或者目錄呢&#xff1f; 在這里我們將學習zip, tar, tar.gz和tar.bz2等壓縮格式的基本用法。 首先了解下Linux里面常用的壓縮格式。 在我們探究這些用法之前&#xff0c;我想先跟大家分享一下使用不同壓縮格式的經驗。當然&#xff0c;我這里講到的只…

《數據結構上機實驗(C語言實現)》筆記(2 / 12):線性表

文章目錄驗證性實驗實現順序表各種基本運算的算法放碼sqlist.hsqlist.cppexp2-1.cpp結果實現單鏈表各種基本運算的算法放碼linklist.hlinklist.cppexp2-2.cpp結果實現雙鏈表各種基本運算的算法放碼dlinklist.hdlinklist.cppexp2-3.cpp結果實現循環單鏈表各種基本運算的算法放碼…

鏈表排序-歸并

鏈表排序&#xff0c;可以插入排序&#xff0c;我就不寫了。 實現歸并排序 歸并排序&#xff08;MERGE-SORT&#xff09;是建立在歸并操作上的一種有效的排序算法,該算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一個非常典型的應用。將已有序的子序列合并&…

ubuntu麒麟下安裝并啟用搜狗輸入法

1.首先打開UK軟件&#xff0c;輸入搜狗尋找搜狗拼音軟件 然后下載搜狗拼音軟件 接著點擊啟動該軟件 2.點擊搜狗拼音的圖標&#xff0c;進入搜狗拼音的設置窗口 點擊高級&#xff0c;并打開FCITX設置 加入英語輸入法 3.這樣就可以進行中英文切換了

線性表表示集合

集合我們高中都學過吧&#xff1f; 最重要的幾個特點&#xff1a;元素不能重復、各個元素之間沒有關系、沒有順序 集合內的元素可以是單元素或者是集合。 對集合的操作&#xff1a;交集并集差集等&#xff0c;還有對自身的加減等。 需要頻繁的加減元素&#xff0c;所以順序…

家用無線路由器購買入門指南

視頻一&#xff1a;「白問」普通大眾 買路由器關注這幾個點就夠了 來源 例如商品名&#xff1a;AC 1200M 雙頻 AX前綴wifi6IEEE 802.11 AX AC前綴wifi5IEEE 802.11 AC AX比AC好 1200M 理論峰值 和網速無關 商家噱頭 MIMO SU-MIMO 單用戶多進多出&#xff08;早期&#xff…

ubuntu linux下執行.sh文件

ubuntu linux下執行.sh文件 首先&#xff0c;要確保這個文件的類型是可執行的。 有兩種辦法把文件設置為可執行文件。 1) 直接在文件屬性標簽中選中 "可執行"&#xff0c;--b 如果用的是圖形界面&#xff0c;這個方法最簡單直接。 2) 使用命令 chmod x file.sh。將可…

鏈表相交問題

本來想自己寫&#xff0c;寫了一半發現一篇文章&#xff0c;解釋寫得簡單易懂&#xff0c;我就直接拿過來了。 這個問題值得反復地寫&#xff0c;鍛煉鏈表coding能力的好題。 //如果兩個鏈表都不帶環 int NotCycleCheckCross(pLinkNode head1,pLinkNode head2) {pLinkNode lis…

用JS寫了一個模擬串行加法器

在重溫《編碼&#xff1a;隱匿在計算機軟硬件背后的語言》第12章——二進制加法器時&#xff0c;心血來潮用JS寫了一個模擬串行加法器。 測試斷言工具TestUtils.js function assertTrue(actual){if(!actual)throw "Error actual: " actual " is not true.&q…