情報オリンピック日パス(C ++版)が始まります

	19年,结束了江苏高考的日子,作为江苏卷的倒数第二年“体验者” ,尽管自己得到的那个分数看着还算体面,但还是带着小高考的痛,给自己的高考留下了那份无法弥补的缺憾。
	高考志愿时,抱着自以为会很快培养兴趣的想法选择了计算机,从小到大的设计梦原来对于理科生来说是选择不了的,除非我不要那么要强地想要我的高考分数每一分都能尽其所用,但终究我还是要强了,和东南建筑水平以下的其他高校建筑专业say goodbye,我是真和东南有一份~~孽缘~~缘分。不得不承认我到现在还对自己是计算机大类的大一学生这一身份感到有些手足无措,不过值得欣慰的是大一上的成绩单没那么难堪。
	还是因为好强,如果可以做好,我想就要强地坚持下去吧!刚过去的一学期的程序设计C++课庆幸自己去年暑假的稍稍预习,虽然那时被我的大佬闺蜜推荐的这本初学者必备书弄的一头雾水(太难了),但开学时内心还是很感谢。似乎没有一堂课没有打过瞌睡,但还是熬着拿了这科的mj。
	20年,没有想过是这样的开头,不少玩乐后还是想做点实事。以下就是这本书的纠错。

C ++言語の最初の部分

第V章第1次元配列array

学校の外の木
の制限時間:1000msのメモリ制限:65536キロバイト
の提出:27237番号を通じて:14446

説明] [タイトル
道路上の木の行のゲート長L外部学校の、隣り合う木の間隔は1メートルです。我々は、軸の位置番号0、他端位置Lに、軸として道路の一端を道路番号を置くことができ、各整数軸点、すなわち、0,1,2、...、L、木の種であります。

地下鉄を構築するために使用する道路上のいくつかの分野がありますので。数は、その軸線とこれらの領域は、開始点と終了点を表します。整数である、部分領域間にオーバーラップすることができる領域の任意の既知の開始点と終了点の座標。さて、(端部領域において、2つのツリーを含む)我々これらの地域の木を除去しました。あなたの仕事は、これらの木の計算は、道路上にあるどのように多くの木々、削除されています。

[入力]
最初の行は、2つの整数L(1≤L≤10000)とM(1≤M≤100)を有し 、 数Lは、LとMの間の代表的な領域Mは、スペースで区切られ、道路の長さを表します。 。次のMラインはスペースで区切られた2つの異なる整数、領域の開始点と終了点を示す座標を含みます。

データの20%を、部分領域間に重複が存在しない、領域間にオーバーラップされ、他のデータ、のために。

[出力]
道路上のツリーを残りの数を表す整数のみを含む行を含みます。

[サンプル入力】

500 3
150 300
100 200
470 471

[サンプル出力]

298

I [コード]

#include<iostream>
using namespace std;
int main()
{
	int L[10001],a[100],b[100];
	int l,n;
	cin>>l>>n;
	for(int i=0;i<=l;i++)L[i]=1;
	for(int i=0;i<n;i++)
	{	
		cin>>a[i];
		cin>>b[i];
	}
	for(int i=0;i<n;i++)
	{
		for(int j=a[i];j<=b[i];j++)
			L[j]=0;
	}
	int t=0;
	for(int i=0;i<=l;i++)
	{
	if(L[i]==1)t++;
	}
	cout<<t<<endl;
	return 0;
}

Jinjin不幸な
制限時間:1000msのメモリ制限:65536キロバイト
の提出:18180番号を通じて:13105

説明[タイトル]
Jinjin中学校。彼女の母親は、対象者再教育コースの登録に参加するために学校に加えて、だけでなく、彼女の母親のためのJinjinはのでJinjinは、もっと勉強すべきであると感じました。また、毎週の母親は読書、ダンス、ピアノを学ぶために彼女を送信します。しかし、8時間以上のクラスの場合Jinjin日は不幸になりますが、また長い上では、より不幸になります。Jinjinは不幸な他のものを想定していないだろう、と彼女は次の日までの最後の幸せではないではありません。あなたは来週、来週Jinjinのスケジュールをチェックしてくださいだろう、彼女は見ることは不幸ではありません。もしそうならば、最も不幸な日。

[Enter]を
月曜日は日曜日のスケジュールによって、それぞれ、データの7行が含まれています。各行はJinjinは学校の時間の間に、それぞれ、スペースで区切って、彼女の母親が授業時間のために配置され、10未満2非負の整数が含まれています。

[出力]
のみ番号を含む行を含みます。出力は、月曜日、火曜日、水曜日、木曜日、金曜日、週、それぞれ、1、2、3、4、5、6、および7に(週の最も不幸になるならば、あなたは、幸せにして出力0でない場合土曜日と日曜日)。非常に不幸2日以上の程度、日の最前方の出力時間がある場合。

[サンプル入力】

5 3
6 2
7 2
5 3
5 4
0 4
0 6

[サンプル出力]

3

I [コード]

#include<iostream>
using namespace std;
int main()
{
	int a[8],b[8],c[8];
	memset(c,0,sizeof(c));
	for(int i=1;i<=7;i++)
	{
	cin>>a[i];
        cin>>b[i];
	if(a[i]+b[i]>8){c[i]+=1;}
	}
	int t=0;
	int largest=c[1];
	for(int i=1;i<=7;i++)
	{
		if(c[i]==0)t++;
		if(c[i]>largest)largest=c[i];
	}
	if(t==7) cout<<'0'<<endl;
	else
	{
		for(int i=1;i<=7;i++)
	{
		if(c[i]==largest)
		{
		cout<<i<<endl;
		break;
		}
	}
	}
	return 0;
}

白血球数の
制限時間:1000ミリ秒のメモリ制限:65536キロバイト
によって27166番号:8719番号を提出

タイトル説明
病院、臨床場合、nの処理中のサンプルの数をサンプリング白血球
症例の抗生物質治療の効果のいくつかの新たな分析のために部品。分析誤差を減少させるために、n個のサンプルの最初の部分は、その後、残りのn-2の平均有効サンプル分析指標として最大値サンプルとサンプルの最小値から除去されます。一方、抗生物質の効果を観察するために安定であるだけでなく、誤差の平均値、最大値およびすべての有効なサンプルの平均値の絶対値と、すなわち差(即ち、二つの試料を含まない控除されている)が得られます。
今度はサンプル値は、白血球の数を提供し、対応するケースの平均誤差を算出し、Nによると、プログラムを書きます。

[入力]
第一の入力線は、n個のサンプルがあることを示し、正の整数N(2 <n≤300)です。N個の行があり、以下、それぞれ、109 / Lの単位での白血球の数に対応し、フロートに作用します 数との間のスペースで区切られています。

[出力]
中央のスペースで区切られた2つの浮動小数点数への出力、。それぞれ、白血球の平均数と対応する誤差、単位は109 / Lです。2つの結果は、小数点の後に保持されます。

[サンプル入力】

5
12.0
13.0
11.0
9.0
10.0

[サンプル出力]

11.00 1.00

I [コード]

#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
	int n;
	cin>>n;
	double a[300];
	for(int i=0;i<n;i++)
		cin>>a[i];
	double largest=a[0];
	int k,l;
	double smallest=a[0];
	for(int i=0;i<n;i++)
	{
		if(a[i]>largest){largest=a[i];k=i;}
		if(a[i]<smallest){smallest=a[i];l=i;}
	}
	double sum=0;
	a[k]=0;
	a[l]=0;
	for(int i=0;i<n;i++)
	{
	if(a[i]!=0)sum+=a[i];
	}
	double ave=sum/(n-2);
	double b[300];
	int t=0;
	for(int i=0;i<n;i++)
	{	
		if(a[i]!=0)
		{
				b[t]=abs(a[i]-ave);
				t++;
		}
	}
	double larg=b[0];
	for(int i=0;i<n-2;i++)
	{
	if(b[i]>larg)larg=b[i];
	}
	cout<<fixed<<setprecision(2)<<ave<<" "<<larg<<endl;
	return 0;
}

注:「最大値のサンプルとサンプルの最小値を取り除く」、おそらく、このような最大値や最小値など、いくつかのサンプル値があるでしょうが、あなたは、それぞれ、1つだけ削除することができます。

カーペット
制限時間:1000msのメモリ制限:65536キロバイト
の提出:18238番号:8164

説明] [タイトル
特別表彰式を調製するために、会場の矩形領域内の主催者は、長方形のカーペットの一部で覆われた(直交座標系の第一象限と見ることができます)。1からnまでの番号Nカーペットの合計。今連続軸に平行に敷設され、これらの数字カーペット昇順に従って、カーペットを敷設した後、以前に敷設カーペットの上に重ね。カーペットの敷設が完了した後、主催者はポイント数の最上階を覆うカーペットを知りたいです。注:矩形の境界上の点、及びカーペットの4つの頂点がカーペットで覆われて考えることができます。

説明入力出力サンプル1:以下、二重実線で示す破線カーペット番号2で示される実線で示すカーペット1、第3号は、カーペットカーペット3最上層である点(2,2)をカバー。

説明入力出力サンプル2:以下、実線で示したカーペット1は、破線カーペット番号2で示される、3号二重実線で示し、ないカーペット被覆点(4,5)が最上位です。

[Enter]を

最初の行、整数n、nは総カーペットを表します。

次の行n iは、それぞれ、カーペットスペースで区切られた2つの整数それぞれ、間に4つの正の整数であり、B、G、Kを含む、カーペット情報を表し、I + 1行数左下隅とカーペットXおよびY軸方向の長さの座標(A、B)。

N + 2番目のラインは、2つの正の整数xとyが含まれ、接地点に必要な表現(x、y)を座標。

[出力]
出力コモンライン1、カーペットの数を表す整数であり、必要な、カーペットを出力ここで覆われていない場合は-1。

[サンプル入力】

3
1 0 2 3
0 2 3 3
2 1 3 3
2 2

[サンプル出力]

3

[注]

サンプル入力#2:

3
1 0 2 3
0 2 3 3
2 1 3 3
4 5

サンプル出力#2:

-1

[データ範囲]

全部数据,1≤n≤10000

I [コード]

#include<iostream>
using namespace std; 
int main()
{
	int n;
	cin>>n;
	const int N=10001;
	int a[N],b[N],c[N],d[N];
	for(int i=1;i<=n;i++)
	{	cin>>a[i];
		cin>>b[i];
		cin>>c[i];
		cin>>d[i];
	}
	int x,y;
	int t=0;
	cin>>x>>y;
	for(int i=n;i>=0;i--)
	{
	if(x>=a[i]&&x<=(a[i]+c[i])&&y>=b[i]&&y<=(b[i]+d[i]))
	{cout<<i<<endl;t++;break;}
	}
	if(t==0)cout<<"-1"<<endl;
	return 0;
}

残念ながら、VS2010での私のコードがちょうどDevの上、まだスタックオーバーフローであるかのように、このタイトル。
アンは、願いが継続します。

出版元の記事 ウォンの賞賛4 ビュー215

おすすめ

転載: blog.csdn.net/Catherine_he_ye/article/details/104285745