日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[LOJ]体育成绩统计 / Score (无脑模拟,没有脑子,就是上!)

發布時間:2023/12/3 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [LOJ]体育成绩统计 / Score (无脑模拟,没有脑子,就是上!) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目
好久沒敲過惡心的模擬題了,莫名有點懷念是什么鬼,我還記得我的zamjena
沒啥想說的,這道題就是沒智商有碼力的
純粹是紀念一下今天上午直接肝了的兩個半小時,真的一點思維都不需要有,直接上!!
我的手都沒停下過,無非難調了一點,經常打飛而已啦~

#include <map> #include <cstdio> #include <vector> using namespace std; #define MAXN 4005 #define MAXM 150005 #define int long long struct node {int id, s, a, b, f, c, ans;char sex, test; }s[MAXN]; struct noded {int date, sh, sm, ss, th, tm, ts, a, b, s;double l;noded() {sh = sm = ss = th = tm = ts = 0;} }doc[MAXM]; vector < int > G[MAXN]; map < int, int > mp; int n, m, ans; int day[15];int Run( char sex, int t ) {if( sex == 'M' ) {if( t <= 1230 ) return 20;if( t <= 1300 ) return 18;if( t <= 1330 ) return 16;if( t <= 1400 ) return 14;if( t <= 1430 ) return 12;if( t <= 1510 ) return 10;if( t <= 1550 ) return 8;if( t <= 1630 ) return 6;if( t <= 1710 ) return 4; if( t <= 1800 ) return 2;}else {if( t <= 640 ) return 20;if( t <= 657 ) return 18;if( t <= 714 ) return 16;if( t <= 731 ) return 14;if( t <= 750 ) return 12;if( t <= 805 ) return 10;if( t <= 820 ) return 8;if( t <= 835 ) return 6;if( t <= 850 ) return 4;if( t <= 900 ) return 2;}return 0; }void init() {day[1] = day[3] = day[5] = day[7] = day[8] = day[10] = day[12] = 31;day[2] = 28;day[4] = day[6] = day[9] = day[11] = 30; }int Date( int s, int t ) {int sm = ( s % 10000 ) / 100, sd = s % 100;int tm = ( t % 10000 ) / 100, td = t % 100;int sums = sd, sumt = td;for( int i = 1;i < sm;i ++ )sums += day[i];for( int i = 1;i < tm;i ++ )sumt += day[i];return sumt - sums; }int Time( int i ) {int sh = doc[i].sh, sm = doc[i].sm, ss = doc[i].ss;int th = doc[i].th, tm = doc[i].tm, ts = doc[i].ts;if( sh > th ) th += 24;return th * 3600 + tm * 60 + ts - sh * 3600 - sm * 60 - ss; }int Time( int i, int j ) {int sh = doc[i].th, sm = doc[i].tm, ss = doc[i].ts;int th = doc[j].sh, tm = doc[j].sm, ts = doc[j].ss;int date = Date( doc[i].date, doc[j].date );th += date * 24;if( th < sh ) return 0;return th * 3600 + tm * 60 + ts - sh * 3600 - sm * 60 - ss; }int shine( int u ) {int tot = 0, last = 0;for( int v = 0;v < G[u].size();v ++ ) {int i = G[u][v];doc[i].l *= 1000;if( doc[i].l < 3000 && s[u].sex == 'M' ) continue;if( doc[i].l < 1500 && s[u].sex == 'F' ) continue;if( doc[i].l / Time( i ) < 2 || doc[i].l / Time( i ) > 5 ) continue;if( doc[i].a * 60 + doc[i].b > 270 ) continue;if( doc[i].l / doc[i].s > 1.5 ) continue;if( Time( last, i ) < 21600 ) continue;tot ++, last = i;}return tot; }int SunRun( int x ) {if( x >= 21 ) return 10;if( x >= 19 ) return 9;if( x >= 17 ) return 8;if( x >= 14 ) return 7;if( x >= 11 ) return 6;if( x >= 7 ) return 4;if( x >= 3 ) return 2;return 0; }int Item( int x ) {if( x >= 18 ) return 5;if( x >= 15 ) return 4;if( x >= 12 ) return 3;if( x >= 9 ) return 2;if( x >= 6 ) return 1;return 0; }void Grade( int x ) {if( x >= 95 ) printf( "A\n" );else if( x >= 90 ) printf( "A-\n" );else if( x >= 85 ) printf( "B+\n" );else if( x >= 80 ) printf( "B\n" );else if( x >= 77 ) printf( "B-\n" );else if( x >= 73 ) printf( "C+\n" );else if( x >= 70 ) printf( "C\n" );else if( x >= 67 ) printf( "C-\n" );else if( x >= 63 ) printf( "D+\n" );else if( x >= 60 ) printf( "D\n" );else printf( "F\n" ); }signed main() {init();scanf( "%lld", &n );for( int i = 1;i <= n;i ++ ) {char pun;scanf( "%lld %c %lld %lld%c%lld%c %c %lld %lld", &s[i].id, &s[i].sex, &s[i].s, &s[i].a, &pun, &s[i].b, &pun, &s[i].test, &s[i].f, &s[i].c );ans = 0;ans += s[i].s;ans += Run( s[i].sex, s[i].a * 100 + s[i].b );if( s[i].test == 'P' ) ans += 10;s[i].ans = ans;mp[s[i].id] = i;}scanf( "%lld", &m );for( int i = 1, id;i <= m;i ++ ) {char pun;scanf( "%lld %lld %lld:%lld:%lld %lld:%lld:%lld %lf %lld%c%lld%c %lld", &doc[i].date, &id, &doc[i].sh, &doc[i].sm, &doc[i].ss, &doc[i].th, &doc[i].tm, &doc[i].ts, &doc[i].l, &doc[i].a, &pun, &doc[i].b, &pun, &doc[i].s );G[mp[id]].push_back( i );}for( int i = 1;i <= n;i ++ ) {int tot = shine( i );s[i].ans += SunRun( tot );s[i].ans += Item( tot + s[i].c ) + s[i].f;}for( int i = 1;i <= n;i ++ )printf( "%lld %lld ", s[i].id, s[i].ans ), Grade( s[i].ans );return 0; }

總結

以上是生活随笔為你收集整理的[LOJ]体育成绩统计 / Score (无脑模拟,没有脑子,就是上!)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。