2019年市赛
2019年市赛
  第一题（体质指数P1530）
    考点
      选择结构，多分支
    难度
      2-1星
    代码
      //written by xfm
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main ()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
//ios::sync_with_stdio(0);
//cin.tie(0);
//cout.tie(0);
double a,b,s=0;
cin>>a>>b;
s=a/(b*b);
cout<<fixed<<setprecision(1)<<s<<" ";
if(s<18.5)
{
cout<<"L";
}
else if(s<=24)
{
cout<<"N";
}
else
{
cout<<"H";
}
return 0;
}
  第二题（成绩统计P1531）
    考点
      二维数组
    难度
      4-2星
    代码
      //written by xfm
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll cj[105][105];
double pjs[1005];
int main ()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
//ios::sync_with_stdio(0);
//cin.tie(0);
//cout.tie(0);
ll n,m,x,y;
ll s=0,t=0;
cin>>n>>m>>x>>y;
for(ll i=1;i<=n;i++)
{
ll maxn=INT_MIN;
for(ll j=1;j<=m;j++)
{
cin>>cj[i][j];
maxn=max(cj[i][j],maxn);
pjs[i]+=cj[i][j];
if(cj[i][j]<x)
s++;
if(cj[i][j]>y)
t++;
}
cout<<maxn<<" ";
pjs[i]/=m;
}
cout<<"\n";
for(ll i=1;i<=n;i++)
{
cout<<fixed<<setprecision(1)<<pjs[i]<<" ";
}
cout<<"\n";
cout<<s<<" "<<t;
return 0;
}
  第三题（素数对猜想P1532）
    考点
      数学，素数
    难度
      5-3星
    代码
      //written by xfm
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main ()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
//ios::sync_with_stdio(0);
//cin.tie(0);
//cout.tie(0);
ll n,i,j,f=0,s=0;
cin>>n;
for(i=1;i<=n;i++)
{
f=0;
for(j=2;j<=sqrt(i);j++)
{
if(i%j==0)
{
f=1;
break;
}
}
if(f==0&&i>1)
{
f=0;
for(j=2;j<=sqrt(i-2);j++)
{
if((i-2)%j==0)
{
f=1;
break;
}
}
if(f==0&&(i-2)>1)
{
s++;
}
}
}
cout<<s;
return 0;
}
  第四题（最长连续重复字符P1533）
    考点
      字符串
    难度
      4-3星
    代码
      //written by xfm
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string a, b;
bool f[200];
int main () {
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
//ios::sync_with_stdio(0);
//cin.tie(0);
//cout.tie(0);
int i, y = 1, max = INT_MIN, t = 0, n;
cin >> n;
cin >> a;
a.push_back(' ');
for (i = 0; i < a.size(); i++) {
if (a[i] == a[i + 1]) {
y++;
} else {
if (y > max) {
max = y;
t = i;
}
y = 1;
}
}
for (i = 0; i < a.size(); i++) {
if (a[i] == a[i + 1]) {
y++;
} else {
if (y == max && f[a[i]] == 0) {
cout << a[i] << " ";
f[a[i]] = 1;
}
y = 1;
}
}
cout << endl << max;
return 0;
}
  第五题（最小等待时间P1534）
    考点
      贪心
    难度
      5-3星
    代码
      //written by xfm
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[105];
int main () {
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
//ios::sync_with_stdio(0);
//cin.tie(0);
//cout.tie(0);
ll n, i, s = 0, k;
cin >> n;
for (i = 1; i <= n; i++) {
cin >> a[i];
}
sort(a + 1, a + n + 1);
k = n;
for (i = 1; i <= k; i++) {
n--;
s += a[i] * n;
}
cout << s;
return 0;
}
  第六题（银行排队P1535）
    考点
      模拟，队列
    难度
      5-3星
    代码
      #include<bits/stdc++.h>
using namespace std;
struct stu
{
int nt;
int st, et;
}p[105];
queue<int> q[10];
int n, m, k, t, qq;
int main()
{
cin >> n >> m >> k >> qq;
for(int i = 1; i <= k; i++)
{
cin >> p[i].nt;
}
int cnt = min(k, n * m);
for(int i = 1; i <= cnt; i++)
{
q[(i-1)%n].push(i);
if(i <= n) p[i].st = 8 * 60;
else p[i].st = p[i-n].et;
p[i].et = p[i].st + p[i].nt;
}
int idx = cnt + 1;
while(cnt)
{
int minet = 1e9, mini;
for(int i = 0; i < n; i++)
{
int id = q[i].front();
if(minet > p[id].et)
{
mini = i;
minet = p[id].et;
}
}
if(idx <= k)
{
p[idx].st = p[q[mini].back()].et;
p[idx].et = p[idx].st + p[idx].nt;
q[mini].push(idx);
idx++;
}
else cnt--;
q[mini].pop();
}
while(qq--)
{
cin >> t;
if(p[t].st >= 17 * 60) cout << "sorry" << endl;
else cout << setw(2) << setfill('0') << p[t].et/60 << ":" << setw(2) << setfill('0') << p[t].et%60 << endl;
}
return 0;
}