版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2015-09-1數(shù)據(jù)分段給定一個(gè)整數(shù)數(shù)列,數(shù)列中連續(xù)相同的最長整數(shù)序列算成一段,問數(shù)列中共有多少段?#include<iostream>using namespace std;int main()int n,a1000;cin>>n;for(int i=0;i<n;i+)cin>>ai;int d=a0,m=1;for(int i=1;i<n;i+)if(ai!=d)m+;d=ai;cout<<m<<endl;return 0;2015-09-2日期計(jì)算給定一個(gè)年份y和一個(gè)整數(shù)d,問這一年的第d天是幾月幾日? 注意閏年的
2、2月有29天。滿足下面條件之一的是閏年: 1) 年份是4的整數(shù)倍,而且不是100的整數(shù)倍; 2) 年份是400的整數(shù)倍。#include <iostream>using namespace std;int main()int y,d,m=1;cin>>y;cin>>d;if(y%4=0&&y%100!=0|y%400=0)int a12=31,29,31,30,31,30,31,31,30,31,30,31;for(int i=0;i<12;i+)if(d>=ai)m+;d=d-ai;elseint a12=31,28,31,30
3、,31,30,31,31,30,31,30,31;for(int i=0;i<12;i+)if(d>=ai)m+;d=d-ai;cout<<m<<endl;cout<<d<<endl;return 0;2015-09-3 模板生成系統(tǒng)成成最近在搭建一個(gè)網(wǎng)站,其中一些頁面的部分內(nèi)容來自數(shù)據(jù)庫中不同的數(shù)據(jù)記錄,但是頁面的基本結(jié)構(gòu)是相同的。例如,對(duì)于展示用戶信息的頁面,當(dāng)用戶為 Tom 時(shí),網(wǎng)頁的源代碼是#include<iostream> using namespace std; #include<string.h>
4、; #define maxn 0x7fffffff #include<map> #include<stdio.h> int m,n; int main() int i,j; string s105; string s1,s2,s3,s4; cin>>n>>m; getchar(); for(i=0;i<n;i+) getline(cin,si); map<string,string>v; for(j=0;j<m;j+) int k,k1=0; cin>>s1; getchar(); getline(cin,s2
5、); s1.insert(0," "); s1=s1+" " s2.erase(0,1); s2.erase(s2.end()-1,s2.end(); vs1=s2; int j120,j220,k,k1; for(i=0;i<n;i+) k1=0; memset(j1,-1,sizeof(j1); memset(j2,-1,sizeof(j2); for(j=0;sij!=0;j+) if(sij=''&&sij+1='') j1k1=j; if(sij=''&&si
6、j+1='') j2k1=j+1; if(j1k1!=-1&&j2k1!=-1) k1+; int t=0; for(j=0;j<k1;j+) s3="" for(k=j1j+t;k<=j2j+t;k+) s3.insert(s3.end(),sik); if(v.count(s3) si.replace(si.begin()+j1j+t,si.begin()+j2j+1+t,vs3); t=t+vs3.size()-s3.size();/注意替代后字符串的長度發(fā)生改變,t為變化的長度。 else si.replace(si.be
7、gin()+j1j+t,si.begin()+j2j+1+t,""); t=t-s3.size(); cout<<si<<endl; return 0; 2015-09-4高速公路某國有n個(gè)城市,為了使得城市間的交通更便利,該國國王打算在城市之間修一些高速公路,由于經(jīng)費(fèi)限制,國王打算第一階段先在部分城市之間修一些單向的高速公路。 現(xiàn)在,大臣們幫國王擬了一個(gè)修高速公路的計(jì)劃??戳擞?jì)劃后,國王發(fā)現(xiàn),有些城市之間可以通過高速公路直接(不經(jīng)過其他城市)或間接(經(jīng)過一個(gè)或多個(gè)其他城市)到達(dá),而有的卻不能。如果城市A可以通過高速公路到達(dá)城市B,而且城市B也可以通
8、過高速公路到達(dá)城市A,則這兩個(gè)城市被稱為便利城市對(duì)。#include <iostream> #include <cstdio> #include <cstring> #include <set> #include <queue> using namespace std; const int ADJ_NUM = 50; const int SIZE = 10001; struct _graph int adjADJ_NUM; / 來記錄鄰接點(diǎn)的下標(biāo) int num; / 指示鄰接點(diǎn)的數(shù)目 ; _graph VSIZE = 0; int
9、LOWSIZE = 0; int DFNSIZE = 0; bool instackSIZE = false; / 用來記錄一個(gè)頂點(diǎn)是否在棧里面 int StapSIZE = 0; int BelongSIZE = 0; int Dindex, Stop, Bcnt; int answer = 0; void tarjan(int i) int j; int index = 0; DFNi = LOWi = +Dindex; / 標(biāo)記 instacki = true; / 表示這個(gè)節(jié)點(diǎn)在棧里面 Stap+Stop = i; / 入棧 while (true) / 尋找鄰節(jié)點(diǎn) j = Vi.ad
10、jindex+; if (j = 0) break; if (!DFNj) / 如果該點(diǎn)還未有入棧 tarjan(j); / 從這個(gè)節(jié)點(diǎn)開始訪問,也就是遞歸 if (LOWj < LOWi) / j節(jié)點(diǎn)訪問完成之后,LOWj可能發(fā)生了變化,要更新LOWi LOWi = LOWj; else if (instackj && DFNj < LOWi) / 該節(jié)點(diǎn)已經(jīng)在棧里面了 LOWi = DFNj; if (DFNi = LOWi) / DFNi = LOWi這說明有一個(gè)強(qiáng)連通分量 int sum = 0; Bcnt+; / 這里表示聯(lián)通分量的數(shù)量加一 do j =
11、StapStop-; instackj = false; / 這里表示出棧 Belongj = Bcnt; sum+; while (j != i); if (sum != 0) answer += (sum * (sum - 1) / 2; void solve(int N) int i; Stop = Bcnt = Dindex = 0; memset(DFN, 0, sizeof(DFN); for (i = 1; i <= N; i+) if (!DFNi) tarjan(i); int main() int n, m; int a, b; cin >> n >
12、> m; while (m-) cin >> a >> b; Va.adjVa.num = b; / 從 a到b有一條邊 Va.num+; / 計(jì)數(shù)器加1 solve(n); cout << answer << endl; return 0; 2015-09-5 暫無2015-03-1圖像旋轉(zhuǎn)旋轉(zhuǎn)是圖像處理的基本操作,在這個(gè)問題中,你需要將一個(gè)圖像逆時(shí)針旋轉(zhuǎn)90度。 計(jì)算機(jī)中的圖像表示可以用一個(gè)矩陣來表示,為了旋轉(zhuǎn)一個(gè)圖像,只需要將對(duì)應(yīng)的矩陣旋轉(zhuǎn)即可。#include<iostream>using namespace std;i
13、nt a10001000;int b10001000;int main()int m,n;cin>>m>>n;for(int i=0;i<m;i+)for(int j=0;j<n;j+)cin>>aij;for(int i=0;i<m;i+)for(int j=0;j<n;j+)bn-1-ji=aij;for(int i=0;i<n;i+)for(int j=0;j<m;j+)cout<<bij<<" "cout<<endl;return 0;2015-03-2數(shù)字排
14、序給定n個(gè)整數(shù),請(qǐng)統(tǒng)計(jì)出每個(gè)整數(shù)出現(xiàn)的次數(shù),按出現(xiàn)次數(shù)從多到少的順序輸出。#include<iostream>using namespace std;int a1000,b1000;int swap(int &a,int &b)int k;k=a;a=b;b=k;int main() int n,max=0,m; cin>>n;for(int i=0;i<n;i+)cin>>ai;bi=1;/從小到大排序 for(int i=0;i<n-1;i+)for(int j=i+1;j<n;j+)if(ai>aj)swap(a
15、i,aj);(/每個(gè)數(shù)出現(xiàn)的次數(shù) for(int i=1;i<n;i+)if(ai=ai-1)bi=bi-1+1;bi-1=0;/for(int i=0;i<n;i+) if(bi>max) max=bi;for(int i=max;i>=1;i-)for(int j=0;j<n;j+)if(bj=i) cout<<aj<<" "<<i<<endl;return 0;2015-03-3節(jié)日有一類節(jié)日的日期并不是固定的,而是以“a月的第b個(gè)星期c”的形式定下來的,比如說母親節(jié)就定為每年的五月的第二個(gè)
16、星期日#include <iostream>using namespace std;int day212=31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31;int year(int a)int run=0,ping=0,s; for(int i=1850;i<a;i+)if(i%400=0|i%100!=0&&i%4=0)run+;elseping+;s=run*366+ping*365;return s;int month(int b,int tab)int s=0
17、;for(int i=0;i<b-1;i+)s+=daytabi;return s;int main() int a,b,c,y1,y2;cin>>a>>b>>c>>y1>>y2;for(int i=y1;i<=y2;i+)int tab=0,count=0;if(i%400=0|i%100!=0&&i%4=0)tab=1;int s=year(i)+month(a,tab);int week=(s-1)%7+3;int j=0;for(j=0;j<daytaba-1;j+) if(week=c) c
18、ount+;if(count=b)cout<<i<<'/'<<setw(2)<<setfill('0')<<a<<'/'<<setw(2)<<setfill('0')<<(j+1)<<endl;break;week=week%7+1;if(j=daytaba-1) cout<<"none"<<endl;return 0;2015-03-4網(wǎng)絡(luò)延時(shí)2014-12-1門禁系
19、統(tǒng)濤濤最近要負(fù)責(zé)圖書館的管理工作,需要記錄下每天讀者的到訪情況。每位讀者有一個(gè)編號(hào),每條記錄用讀者的編號(hào)來表示。給出讀者的來訪記錄,請(qǐng)問每一條記錄中的讀者是第幾次出現(xiàn)。#include<iostream>using namespace std;int main()int n,a1000,b1000;cin>>n;for(int i=0;i<n;i+)cin>>ai;bi=1;for(int i=1;i<n;i+)for(int j=0;j<i;j+)if(ai=aj)bi+;for(int i=0;i<n;i+)cout<<
20、;bi<<" " return 0; 2014-12-2 Z字形掃描在圖像編碼的算法中,需要將一個(gè)給定的方形矩陣進(jìn)行Z字形掃描(Zigzag Scan)。給定一個(gè)n×n的矩陣,Z字形掃描的過程如下圖所示:#include<iostream>using namespace std;int main() int n,a500500; cin>>n; for(int i=0;i<n;i+) for(int j=0;j<n;j+) cin>>aij; for(int k=0;k<2*n-1;k+) for(
21、int i=0;i<n;i+) for(int j=0;j<n;j+) if(i+j=k) if(k%2=0) cout<<aji<<" " else cout<<aij<<" " return 0;2014-09-1 相鄰數(shù)對(duì)給定n個(gè)不同的整數(shù),問這些數(shù)中有多少對(duì)整數(shù),它們的值正好相差1。#include<iostream>using namespace std;int main()int n,a1000;int count=0;cin>>n;for(int i=0;i
22、<n;i+)cin>>ai; for(int i=0;i<n-1;i+)for(int j=i+1;j<n;j+)if(ai=aj+1|ai=aj-1)count+;cout<<count<<endl;return 0;2014-09-2 畫圖在一個(gè)定義了直角坐標(biāo)系的紙上,畫一個(gè)(x1,y1)到(x2,y2)的矩形指將橫坐標(biāo)范圍從x1到x2,縱坐標(biāo)范圍從y1到y(tǒng)2之間的區(qū)域涂上顏色。#include<iostream>using namespace std;int main() int n; cin>>n; int
23、bn4;for(int i=0;i<n;i+)for(int j=0;j<4;j+)cin>>b;;int a100100=0;for(int x=0;x<n;x+)for(int i=bx0;i<bx2;i+)for (int j=bx1;j<bx3;j+)aij=1; int m=0;for(int i=0;i<100;i+)for(int j=0;j<100;j+)if(aij=1)m+=1;cout<<m<<endl;return 0;2014-03-1 相反數(shù)有 N 個(gè)非零且各不相同的整數(shù)。請(qǐng)你編一個(gè)程序求
24、出它們中有多少對(duì)相反數(shù)(a 和 -a 為一對(duì)相反數(shù))。#include<iostream>using namespace std;int main()int N,a500;int count=0;cin>>N;for(int i=0;i<N;i+)cin>>ai; for(int i=0;i<N-1;i+)for(int j=i+1;j<N;j+)if(ai=-aj)count+;cout<<count<<endl;return 0;2014-03-2 窗口在某圖形操作系統(tǒng)中,有 N 個(gè)窗口,每個(gè)窗口都是一個(gè)兩邊與坐
25、標(biāo)軸分別平行的矩形區(qū)域。窗口的邊界上的點(diǎn)也屬于該窗口。窗口之間有層次的區(qū)別,在多于一個(gè)窗口重疊的區(qū)域里,只會(huì)顯示位于頂層的窗口里的內(nèi)容。#include<iostream>using namespace std;int main()int M,N;int a104,b102;cin>>N>>M;for(int i=0;i<N;i+)for(int j=0;j<4;j+)cin>>aij;for(int i=0;i<M;i+)for(int j=0;j<2;j+)cin>>bij; int m10=0; for(
26、int k=0;k<M;k+) for(int i=0;i<N;i+)if(bk0>=ai0&&bk0<=ai2&&bk1>=ai1&&bk1<=ai3)mk+; for(int i=0;i<M;i+) if(mi=0) cout<<"IGNORED"<<endl;else cout<<mi<<endl;return 0; 2013-12-1 出現(xiàn)次數(shù)最多的數(shù)給定n個(gè)正整數(shù),找出它們中出現(xiàn)次數(shù)最多的數(shù)。如果這樣的數(shù)有多個(gè),請(qǐng)輸出其中最小的
27、一個(gè)。#include<iostream>using namespace std;int swap(int &a,int &b)int k;k=a;a=b;b=k;int main()int n,s1000,b1000;cin>>n;for(int i=0;i<n;i+)cin>>si;bi=1;for(int i=0;i<n-1;i+)for(int j=i+1;j<n;j+)if(si>sj)swap(si,sj);for(int i=1;i<n;i+)if(si=si-1)bi=bi-1+1;bi-1=0;
28、int max=0;for(int i=0;i<n;i+)if(bi>max)max=bi;for(int i=0;i<n;i+)if(bi=max) cout<<si; break; return 0;2014-12-2每一本正式出版的圖書都有一個(gè)ISBN號(hào)碼與之對(duì)應(yīng),ISBN碼包括9位數(shù)字、1位識(shí)別碼和3位分隔符,其規(guī)定格式如“x-xxx-xxxxx-x”,其中符號(hào)“-”是分隔符(鍵盤上的減號(hào)),最后一位是識(shí)別碼,例如0-670-82162-4就是一個(gè)標(biāo)準(zhǔn)的ISBN碼。ISBN碼的首位數(shù)字表示書籍的出版語言,例如0代表英語;第一個(gè)分隔符“-”之后的三位數(shù)字代表
29、出版社,例如670代表維京出版社;第二個(gè)分隔之后的五位數(shù)字代表該書在出版社的編號(hào);最后一位為識(shí)別碼。#include<iostream>#include<string>using namespace std;int main()int a10; string s; int sum=0; cin>>s;/ 字符型轉(zhuǎn)換為整型 a0=s0-'0'a1=s2-'0'a2=s3-'0'a3=s4-'0'a4=s6-'0'a5=s7-'0'a6=s8-'0'a
30、7=s9-'0'a8=s10-'0'a9=s12-'0'for(int i=0,j=1;i<9;i+,j+) sum=sum+ai*j; int m=sum%11; char c=m=10? 'X':(char)('0'+m);if(s12=c)cout<<"Right"<<endl;elses12=c; cout<<s<<endl;return 0;2014-12-3 最大的矩形在橫軸上放了n個(gè)相鄰的矩形,每個(gè)矩形的寬度是1,而第i(1 i
31、 n)個(gè)矩形的高度是hi。這n個(gè)矩形構(gòu)成了一個(gè)直方圖。例如,下圖中六個(gè)矩形的高度就分別是3, 1, 6, 5, 2, 3。#include <iostream> #include <assert.h> using namespace std; /* ccf標(biāo)準(zhǔn)算法 TLE! */ /? static void largestRectangle() int n; /直方圖柱形數(shù)目 cin>>n; int *height = new intn; for(int i = 0; i < n; i+) cin>>heighti; long long
32、sum, max = 0; for(int i = 0; i < n; i+) int h = heighti; for(int j = i; j < n; j+) /向右掃描 if( heightj < h ) /高度小時(shí)改為小的高度 h = heightj; sum = (j - i +1) * h; /計(jì)算高度h的矩形面積 if(sum > max) /比原來大則替換 max = sum; while( i < n - 1 && heighti+1 < heighti ) /改進(jìn):比當(dāng)前heighti小的不用再計(jì)算(i后面高度比i小的不
33、可能有更大面積的矩形) i+; cout<<max<<endl; static void largestRectangle1() int n; cin>>n; /while(n) int *height = (int *)malloc(sizeof(int) * n); for(int i = 0; i < n; i+) cin>>heighti; int j, k, sum, max = 0; for(int i = 0; i < n; i+) sum = 1; /初始只有一個(gè)這樣高度的 j = i - 1; k = i + 1; while(j >= 0 && heightj >= heighti) /向左
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年跨境電商平臺(tái)委托運(yùn)營與全球采購合同6篇
- 二零二五年度綠化苗木種植基地租賃合同4篇
- 2025-2030年(全新版)中國便攜式醫(yī)療器械行業(yè)發(fā)展前景調(diào)研及投資戰(zhàn)略分析報(bào)告
- 2025-2030年中國高速公路行業(yè)市場運(yùn)營狀況與發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國食品軟袋包裝市場發(fā)展前景調(diào)研及投資趨勢分析報(bào)告
- 2025版道路路燈照明設(shè)施維修保養(yǎng)服務(wù)協(xié)議4篇
- 2025-2030年中國重卡汽車行業(yè)運(yùn)行狀況及投資前景趨勢分析報(bào)告新版
- 2025-2030年中國衣柜凈化炭市場供需現(xiàn)狀及投資發(fā)展規(guī)劃研究報(bào)告
- 2025-2030年中國腐殖酸系列廢料行業(yè)發(fā)展前景分析與投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國網(wǎng)絡(luò)出版業(yè)行業(yè)競爭格局及投資策略研究報(bào)告
- DLT 5285-2018 輸變電工程架空導(dǎo)線(800mm以下)及地線液壓壓接工藝規(guī)程
- 新員工入職培訓(xùn)測試題附有答案
- 勞動(dòng)合同續(xù)簽意見單
- 大學(xué)生國家安全教育意義
- 2024年保育員(初級(jí))培訓(xùn)計(jì)劃和教學(xué)大綱-(目錄版)
- 河北省石家莊市2023-2024學(xué)年高二上學(xué)期期末考試 語文 Word版含答案
- 企業(yè)正確認(rèn)識(shí)和運(yùn)用矩陣式管理
- 分布式光伏高處作業(yè)專項(xiàng)施工方案
- 陳閱增普通生物學(xué)全部課件
- 檢驗(yàn)科主任就職演講稿范文
- 人防工程主體監(jiān)理質(zhì)量評(píng)估報(bào)告
評(píng)論
0/150
提交評(píng)論