正文之前
我要東山再起了!!沒錯CCF迫在眉睫(其實是我以為報名之后一個月才考,結果報名截止之后一周就考試!(╯‵□′)╯︵┻━┻!!!還能好好做朋友嗎!!)所以今天火急火燎的就開始寫題目了!結果,二十分鐘寫出第一題,40分鐘寫第二題結果大錯特錯,數組全他么越界了!煩躁! 不就是一陣子沒用C++了。怎么我現在這么菜!!??????!!
正文
1、201609-1
試題編號: | 201609-1 |
---|---|
試題名稱: | 最大波動 |
時間限制: | 1.0s |
內存限制: | 256.0MB |
問題描述
小明正在利用股票的波動程度來研究股票。小明拿到了一只股票每天收盤時的價格,他想知道,這只股票連續幾天的最大波動值是多少,即在這幾天中某天收盤價格與前一天收盤價格之差的絕對值最大是多少。輸入格式
輸入的第一行包含了一個整數n,表示小明拿到的收盤價格的連續天數。
第二行包含n個正整數,依次表示每天的收盤價格。輸出格式
輸出一個整數,表示這只股票這n天中的最大波動值。樣例輸入
6
2 5 5 7 3 5樣例輸出
4-
樣例說明
- 第四天和第五天之間的波動最大,波動值為|3-7|=4。
評測用例規模與約定 - 對于所有評測用例,2 ≤ n ≤ 1000。股票每一天的價格為1到10000之間的整
- 第四天和第五天之間的波動最大,波動值為|3-7|=4。
我的代碼展示:
#include <iostream>
#include <vector>
using namespace std;
int abs(int x)
{
if(x<0)
x=-x;
return x;
}
int main()
{
int num;
cin>>num;
int x=1,wave=0;
int pre=0,p=0;
cin>>pre;
while(x<num-1)
{
cin>>p;
if(wave<abs(p-pre))
wave=abs(p-pre);
pre=p;
++x;
}
cout<<wave<<endl;
return 0;
}
運行結果:
Last login: Mon Nov 27 19:39:57 on ttys000
HustWolf:~ zhangzhaobo$ /Users/zhangzhaobo/program/C++/CCF_2016_09_1 ; exit;
6
2 5 5 7 3 5
4
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
[進程已完成]
2、 201609-2
試題編號: | 201609-2 |
---|---|
試題名稱: | 火車購票 |
時間限制: | 1.0s |
內存限制: | 256.0MB |
問題描述
請實現一個鐵路購票系統的簡單座位分配算法,來處理一節車廂的座位分配。
假設一節車廂有20排、每一排5個座位。為方便起見,我們用1到100來給所有的座位編號,第一排是1到5號,第二排是6到10號,依次類推,第20排是96到100號。
購票時,一個人可能購一張或多張票,最多不超過5張。如果這幾張票可以安排在同一排編號相鄰的座位,則應該安排在編號最小的相鄰座位。否則應該安排在編號最小的幾個空座位中(不考慮是否相鄰)。
假設初始時車票全部未被購買,現在給了一些購票指令,請你處理這些指令。輸入格式
輸入的第一行包含一個整數n,表示購票指令的數量。
第二行包含n個整數,每個整數p在1到5之間,表示要購入的票數,相鄰的兩個數之間使用一個空格分隔。輸出格式
輸出n行,每行對應一條指令的處理結果。
對于購票指令p,輸出p張車票的編號,按從小到大排序。樣例輸入
4
2 5 4 2樣例輸出
1 2
6 7 8 9 10
11 12 13 14
3 4樣例說明
1) 購2張票,得到座位1、2。
2) 購5張票,得到座位6至10。
3) 購4張票,得到座位11至14。
4) 購2張票,得到座位3、4。評測用例規模與約定
對于所有評測用例,1 ≤ n ≤ 100,所有購票數量之和不超過100。
我的答案代碼~~
#include <iostream>
using namespace std;
void BuyTicket(int a[20][5],int Tickets)
{
int (*p)[5]=a;
bool flag=false;
for(int i=0;i<20;++i)
{
int *q=*p;
if(q[5-Tickets]==0)
{
for(int z=0;z<5;++z)
{
if(q[z]==0 && Tickets!=0)
{
q[z]=1;
--Tickets;
cout<<5*i+z+1<<" ";
}
}
cout<<endl;
flag=true;
break;
}
++p;
}
if(!flag)
{
int (*m)[5]=a;
for(int i=0;i<20;++i)
{
int *q=*m;
for(int n=0;n<5;++n)
{
if(q[n]==0 && Tickets!=0)
{
q[n]=1;
--Tickets;
cout<<5*i+n+1<<" ";
}
}
}
}
}
int main()
{
int num,Tickets;
int a[20][5];
for(int i=0;i<20;++i)
for(int j=0;j<5;++j)
a[i][j]=0;
cin>>num;
for(int i=0;i<num;++i)
{
cin>>Tickets;
cout<<i+1<<" : ";
BuyTicket(a,Tickets);
}
cout<<"\n=============\n\n";
for(auto p=begin(a);p!=end(a);++p)
{
for(auto q=begin(*p);q!=end(*p);++q)
{
if(*q!=0)
cout<<"* | ";
}
cout<<endl;
}
return 0;
}
運行結果:
Last login: Mon Nov 27 23:19:39 on ttys000
HustWolf:~ zhangzhaobo$ /Users/zhangzhaobo/program/C++/CCF_2016_09_2 ; exit;
24
1 2 4 5 2 3 4 1 2 4 5 2 3 4 1 2 4 5 2 3 4 1 2 4 5 2 3 4
1 : 1
2 : 2 3
3 : 6 7 8 9
4 : 11 12 13 14 15
5 : 4 5
6 : 16 17 18
7 : 21 22 23 24
8 : 10
9 : 19 20
10 : 26 27 28 29
11 : 31 32 33 34 35
12 : 36 37
13 : 38 39 40
14 : 41 42 43 44
15 : 25
16 : 46 47
17 : 51 52 53 54
18 : 56 57 58 59 60
19 : 48 49
20 : 61 62 63
21 : 66 67 68 69
22 : 30
23 : 64 65
24 : 71 72 73 74
=============
* | * | * | * | * |
* | * | * | * | * |
* | * | * | * | * |
* | * | * | * | * |
* | * | * | * | * |
* | * | * | * | * |
* | * | * | * | * |
* | * | * | * | * |
* | * | * | * |
* | * | * | * |
* | * | * | * |
* | * | * | * | * |
* | * | * | * | * |
* | * | * | * |
* | * | * | * |
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
[進程已完成]
善做主張加了點東西,好看了不少,不然就那逼樣,實在是美觀欠奉啊!~~
正文之后
今天先日兩題,待會看看第三題能不能再12點之前做出來,明早還有神奇的有限元課~~ 想想真是讓人絕望啊啊!空氣突然冰冷~