2019北郵網研機試験
4184 ワード
注意:すべてのコードはテーマの説明に基づいてローカルテストを行い、北郵ojでテストしていないので、ACが必ずできるとは保証されません.
リンクをクリックして、過去の試験問題の要約を表示します.
4本の歯磨き粉は価格を比較して、一番安い歯磨き粉に戻ります.
入力:
1行目にTを入力し、データのグループ数を示す.2行目にa b c dを入力すると、歯磨き粉4個の価格が表示されます.
出力:
各テストサンプルについて、最低価格を出力します.
2 2 3 5 2 3 8 7 4
2 3
年の間に4で除かれ100で除かれない普通閏年と400で除かれる世紀閏年の年数を計上する
入力:1行目にTを入力し、データのグループ数を表した後にTグループのデータを入力し、各グループにx yを入力すると開始年(x
出力:xからy年∈[x,y]内の閏年数countを返す
2 2999 3019 1999 2019
4 5
閏年定義:1.4で除去できるが100で除去できない.
2.400で割り切れる.
1つの値が1,2,3,4,...,nのn(0 1ノード値がxのノード2を除去チェーンテーブルを反転し、チェーンテーブルの順序を調整する3に対してチェーンテーブル値がxのノードが指す次のノードの値を問い合わせる
入力:第1行入力Tは、データのグループ数を示す第1行毎にn(ノード数を示す)m(操作数を示す)を入力し、次にm行毎にope(操作方式)x(操作のノード値、操作方式2の場合は入力しない)を入力する
出力:出力操作が3クエリーの場合、調べたノードが指す次のノード値、調べなかったノードが表の末尾(次のノードがない)の場合、「NONE」を出力します.
1 6 6 3 6 1 2 3 1 2 1 5 3 6
NONE 3 4
直接配列で作りました.
Aijはiコンピュータがjコンピュータに接続するオーバーヘッドを表し、Aii=0、Aij=Aji、Aij<=100を保証する.
入力:第1行入力T(T=1)は、データのグループ数を示す第1行毎にN(0出力:このコンピュータネットワークに接続するために必要な最小オーバーヘッドを返します.
1 6 0 1 4 3 7 3 1 0 2 5 1 8 4 2 0 3 9 2 3 5 3 0 1 4 7 1 9 1 0 3 3 8 2 4 3 0
7
最小生成ツリー.
リンクをクリックして、過去の試験問題の要約を表示します.
A歯磨き粉問題
タイトルの説明
4本の歯磨き粉は価格を比較して、一番安い歯磨き粉に戻ります.
入力:
1行目にTを入力し、データのグループ数を示す.2行目にa b c dを入力すると、歯磨き粉4個の価格が表示されます.
出力:
各テストサンプルについて、最低価格を出力します.
サンプル入力
2 2 3 5 2 3 8 7 4
サンプル出力
2 3
解析
#include
#include
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
int a,b,c,d;
cin>>a>>b>>c>>d;
cout<
B閏年問題
タイトルの説明
年の間に4で除かれ100で除かれない普通閏年と400で除かれる世紀閏年の年数を計上する
入力:1行目にTを入力し、データのグループ数を表した後にTグループのデータを入力し、各グループにx yを入力すると開始年(x
出力:xからy年∈[x,y]内の閏年数countを返す
サンプル入力
2 2999 3019 1999 2019
サンプル出力
4 5
解析
閏年定義:1.4で除去できるが100で除去できない.
2.400で割り切れる.
#include
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
int x,y;
cin>>x>>y;
int count=0;
for(int i=x;i<=y;i++)
{
if(i%400==0) count++;
else if(i%4==0)
{
if(i%100) count++;
}
}
cout<
Cチェーンテーブル操作
タイトルの説明
1つの値が1,2,3,4,...,nのn(0 1ノード値がxのノード2を除去チェーンテーブルを反転し、チェーンテーブルの順序を調整する3に対してチェーンテーブル値がxのノードが指す次のノードの値を問い合わせる
入力:第1行入力Tは、データのグループ数を示す第1行毎にn(ノード数を示す)m(操作数を示す)を入力し、次にm行毎にope(操作方式)x(操作のノード値、操作方式2の場合は入力しない)を入力する
出力:出力操作が3クエリーの場合、調べたノードが指す次のノード値、調べなかったノードが表の末尾(次のノードがない)の場合、「NONE」を出力します.
サンプル入力
1 6 6 3 6 1 2 3 1 2 1 5 3 6
サンプル出力
NONE 3 4
解析
直接配列で作りました.
#include
#include
#include
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
/*
//
int n,m,a[51]={0},size;
cin>>n>>m;
size=n;
for(int i=1;i<=n;i++) a[i]=i;
while(m--)
{
int op,x;
cin>>op;
if(op==2)
{
reverse(a+1,a+size+1);
}
else if(op==1)
{
cin>>x;
int flag=size+1;
for(int i=1;i<=size;i++)
{
if(a[i]==x) flag=i;
if(i>flag)
{
a[i-1]=a[i];
}
}
size--;
}
else if(op==3)
{
cin>>x;
int flag=0;
for(int i=1;i<=size;i++)
{
if(a[i]==x)
{
if(i+1<=size)
{
flag=1;
cout<>n>>m;
vector a;
for(int i=1;i<=n;i++) a.push_back(i);
while(m--)
{
int op,x;
cin>>op;
if(op==2) reverse(a.begin(),a.end());
else if(op==1)
{
cin>>x;
for(vector::iterator it=a.begin();it!=a.end();it++)
{
if(*it==x) a.erase(it);
}
}
else if(op==3)
{
cin>>x;
int ok=0;
for(vector::iterator it=a.begin();it!=a.end();it++)
{
if(*it==x&&it!=a.end()-1)
{
ok=1;
cout<
Dネットワーク接続
タイトルの説明
Aijはiコンピュータがjコンピュータに接続するオーバーヘッドを表し、Aii=0、Aij=Aji、Aij<=100を保証する.
入力:第1行入力T(T=1)は、データのグループ数を示す第1行毎にN(0
サンプル入力
1 6 0 1 4 3 7 3 1 0 2 5 1 8 4 2 0 3 9 2 3 5 3 0 1 4 7 1 9 1 0 3 3 8 2 4 3 0
サンプル出力
7
解析
最小生成ツリー.
#include
#include
#include
#include
#define INF 0x3fffffff
#define MAXV 100
using namespace std;
int G[MAXV][MAXV],vis[MAXV],d[MAXV];
int prim(int n)
{
int sum=0;
memset(vis,0,sizeof(vis));
fill(d,d+MAXV,INF);
d[0]=0;
for(int i=0;i>T;
while(T--)
{
int N;
cin>>N;
fill(G[0],G[0]+MAXV*MAXV,INF);
for(int i=0;i>G[i][j];
}
}
cout<