----------------------------------T1----------------------------------

——>足球联赛

题目描述

巴蜀中学新一季的足球联赛开幕了。

足球联赛有 n 只球队参赛,每赛季,每只球队要与其他球队各赛两场,主客各一场,赢一场得 3 分,输一场不得分,平局两只队伍各得一分。

英勇无畏的小鸿是机房的主力前锋, 她总能在关键时刻踢出一些匪夷所思的妙球。

但是很可惜,她过早的燃烧完了她的职业生涯,不过作为一个能够 Burning 的 girl,她的能力不止如此,她还能预测这个赛季所有球队的比赛结果。

虽然她能准确预测所有比赛的结果,但是其实她不怎么厉害,Mr.Gao 上数学课时她总是在 sleep,

因此她的脑里只有整数没有实数,而且,她只会 10 以内非负整数的加法运算,

因此她只有结果却无法知道谁会获得联赛的冠军。

小鸿想给冠军队伍的所有队员一个拥抱,所以她把计算结果的任务交给了你:

现在,给你一个 n*n 的矩阵表示比赛情况。

第 i 行第 j 列的字母表示在第 i 只队伍在主场迎战第 j 只队伍的比赛情况,W 表示主队赢,L 表示主队输,D 表示平局。

现在需要你给出最后能得到小鸿拥抱的队伍编号,如有多支队伍分数最高,按字典序输出编号。

输入输出格式

输入格式:

第一行一个整数 n。

接下来 n 行,每行 n 个字符,表示输赢情况。

第 i 行第 i 列为 - ,因为一只队伍不可能与自己比赛。

输出格式:

输出得分最高的队伍编号。如有多个在一行中输出,用一个空格分开。

输入输出样例

输入样例#1:

3
-WW
W-W
WW-
输出样例#1:

1 2 3
输入样例#2:

5
-DWWD
L-WLL
DD-WD
DDL-L
DDLL-
输出样例#2:

1

说明

对于 40%的数据,满足 N<=20

对于 100%的数据,满足 N<=50

思路=A=

  大模拟,如果主场赢了就+=3,输了就让另一个+=3(写成++,蠢哭了qaq),如果平局就双方++

代码酱=u=

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std; inline int read() {
int x=,f=;char c=getchar();
while(c<'' || c>'') { if(c=='-') f=-; c=getchar(); }
while(''<=c && c<='') x=x*+c-'',c=getchar();
return x*f;
} const int N = ;
int n;
struct points {
int id,w;
points() { w=; }
bool operator < (const points &qwq ) const {
return w > qwq.w;
}
} p[N]; int main() {
freopen("soccer.in","r",stdin);
freopen("soccer.out","w",stdout);
n=read();
char c;
for(int i=; i<=n; i++) {
p[i].id=i;
for(int j=; j<=n; j++) {
cin>>c;
if(c=='-') continue;
else if(c=='W') p[i].w+=;
else if(c=='D') p[i].w++,p[j].w++;
else if(c=='L') p[j].w+=;
}
}
sort(p+,p++n);
int x=p[].w;
for(int i=; i<=n; i++) {
if(p[i].w<x) break;
printf("%d ",p[i].id);
}
fclose(stdin);fclose(stdout);
return ;
}

----------------------------------------------------------------------

Ps:接下来就是单纯存个题=v=

----------------------------------------------------------------------

----------------------------------T2----------------------------------

——>最短路径

题目描述

平面内给出 n 个点,记横坐标最小的点为 A,最大的点为 B,现在小 Y 想要知道在每个点经过一次(A 点两次)的情况下从 A 走到 B,再回到 A 的最短路径。

但他是个强迫症患者,他有许多奇奇怪怪的要求与限制条件:

1.从 A 走到 B 时,只能由横坐标小的点走到大的点。

2.由 B 回到 A 时,只能由横坐标大的点走到小的点。

3.有两个特殊点 b1 和 b2, b1 在 0 到 n-1 的路上,b2 在 n-1 到 0 的路上。

请你帮他解决这个问题助他治疗吧!

输入输出格式

输入格式:

第一行三个整数 n,b1,b2,( 0 < b1,b2 < n-1 且 b1 <> b2)。n 表示点数,从 0 到 n-1 编号,b1 和 b2 为两个特殊点的编号。

以下 n 行,每行两个整数 x、y 表示该点的坐标(0 <= x,y <= 2000),从 0 号点顺序给出。

Doctor Gao 为了方便他的治疗,已经将给出的点按 x 增序排好了。

输出格式:

输出仅一行,即最短路径长度(精确到小数点后面 2 位)

输入输出样例

输入样例#1:

5 1 3
1 3
3 4
4 1
7 5
8 3
输出样例#1:

18.18

说明

20%的数据 n<=20

60%的数据 n<=300

100%的数据 n<=1000

对于所有数据 x,y,b1,b2 如题目描述.

T代码(暴力)

#include <iostream>
#include <cstdio>
#include <cmath>
#include <ctime>
#include <cstdlib>
using namespace std; inline int read() {
int x=,f=;char c=getchar();
while(c<'' || c>'') { if(c=='-') f=-; c=getchar(); }
while(''<=c && c<='') x=x*+c-'',c=getchar();
return x*f;
} const int N = ;
int n,AB,BA,t;
double ans=1e8,jl[N][N];
bool vis[N];
struct point {
int x,y;
} P[N]; double getjl(int a,int b) {
int x=P[a].x,y=P[a].y,x2=P[b].x,y2=P[b].y;
double p=max(x-x2,x2-x),q=max(y-y2,y2-y);
p*=p;q*=q;
return sqrt(p+q);
} void dfs(int now,int cnt,double nowl) {
if(nowl>ans) return;
if(now!=) vis[now]=true;
if(now==n- && cnt==) {
if(!vis[AB]) return;
dfs(now,,nowl);
}
if(now== && cnt==) {
for(int i=; i<n; i++) if(!vis[i]) return;
if(ans>nowl) {
ans=nowl;
return;
}
}
if(cnt==) {
for(int i=now+; i<n; i++) {
if(!vis[i] && i!=BA) {
dfs(i,,nowl+jl[now][i]);
vis[i]=false;
}
}
}
else {
for(int i=now-; i>=; i--) {
if(!vis[i] && i!=AB) {
dfs(i,,nowl+jl[now][i]);
vis[i]=false;
}
}
}
} int main() {
freopen("paths.in","r",stdin);
freopen("paths.out","w",stdout);
n=read();AB=read();BA=read();
for(int i=; i<n; i++)
P[i].x=read(),P[i].y=read();
for(int i=; i<n; i++)
for(int j=; j<n; j++) {
if(i==j) continue;
jl[i][j]=getjl(i,j);
}
dfs(,,0.00);
printf("%.2lf",ans);
fclose(stdin);fclose(stdout);
return ;
}

----------------------------------T3----------------------------------

——>阿 Q 的停车场

题目描述

刚拿到驾照的 KJ 总喜欢开着车到处兜风,玩完了再把车停到阿 Q 的停车场里,虽然她对自己停车的水平很有信心,

但她还是不放心其他人的停车水平,尤其是 Kelukin。

于是,她每次都把自己的爱车停在距离其它车最远的一个车位。

KJ 觉得自己这样的策略非常科学,于是她开始想:

在一个停车场中有一排车位,从左到右编号为 1 到 n,初始时全部是空的。

有若干汽车,进出停车场共 m 次。

对于每辆进入停车场的汽车,会选择与其它车距离最小值最大的一个车位,若有多个符合条件,选择最左边一个。

KJ 想着想着就睡着了,在她一旁的 Kelukin 想帮她完成这个心愿,但是他又非常的懒,不愿意自己动手,于是就把这个问题就留给了你:

在 KJ 理想的阿 Q 的停车场中,给你车辆进出的操作序列,依次输出每辆车的车位编号。

输入输出格式

输入格式:

第一行,两个整数 n 和 m,表示停车场大小和操作数;

接下来 m 行,每行两个整数 F 和 x

F 是 1 表示编号为 x 的车进停车场;

F 是 2 表示编号为 x 的车出停车场;

保证操作合法,即:

出停车场的车一定目前仍在停车场里;

停车场内的车不会超过 n;

输出格式:

对于所有操作 1,输出一个整数,表示该车车位的编号。

输入输出样例

输入样例#1:

7 11
1 15
1 123123
1 3
1 5
2 123123
2 15
1 21
2 3
1 6
1 7
1 8
输出样例#1:

1
7
4
2
7
4
1
3

说明

对 30%的数据 n<=1000 ,m<=1000

对 60%的数据 n<=200000,m<=2000

对 100%的数据 n,m<=200000,车的编号小于等于 10^6

T代码(暴力)

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std; inline int read() {
int x=,f=;char c=getchar();
while(c<'' || c>'') { if(c=='-') f=-; c=getchar(); }
while(''<=c && c<='') x=x*+c-'',c=getchar();
return x*f;
} const int C = ;
const int M = ;
int n,m,F,x,now;
int q[M];
bool vis[C];
struct car {
int id,w;
} a[M]; int main() {
freopen("park.in","r",stdin);
freopen("park.out","w",stdout);
n=read();m=read();
while(m--) {
F=read();x=read();
if(F==) {
a[now].id=x;
memset(q,,sizeof(q));
int top=,w=;
for(int i=; i<=n; i++)
if(vis[i]) q[top++]=i;
for(int i=,Min,Max=; i<=n; i++) {
if(vis[i]) continue;
Min=M;
for(int j=,y; j<top; j++) {
y=max(i-q[j],q[j]-i);
if(y<Min) Min=y;
}
if(Max<Min) Max=Min,w=i;
}
vis[w]=true;
a[now++].w=w;
printf("%d\n",w);
}
else {
int id;
for(int i=; i<n; i++)
if(a[i].id==x) {
id=a[i].w;
break;
}
vis[id]=false;
}
}
fclose(stdin);fclose(stdout);
return ;
}

最新文章

  1. Linux内核源代码获取教程
  2. PetaPojo —— JAVA版的PetaPoco
  3. md5加密31位
  4. 0729pm命名空间
  5. Currency Exchange(Bellman-ford)
  6. caffe:编译时提示:unsupported GNU version! gcc versions later than 4.9 are not supported!
  7. Eclipse快捷键壁纸-0基础必备
  8. ueditor-图片上传是报错
  9. 8.21 usaco
  10. The APR based Apache Tomcat Native library
  11. shit-------------mysql没有full join 语句
  12. Android 解析内存泄漏
  13. 11g的alert日志路径
  14. 再起航,我的学习笔记之JavaScript设计模式03
  15. 轻量级ORM框架 QX_Frame.Bantina(二、框架使用方式介绍)
  16. Java中的Throable类是不是受查异常?
  17. 基于Gecko内核的简单浏览器实现
  18. 【译】Optaplanner开发手册本地化: (0) - 前言及概念
  19. PHP stdClass类
  20. SharePoint Framework 企业向导(四)

热门文章

  1. SQL Server元数据查询
  2. How to change SAPABAP1 schema password In HANA
  3. stm32和sd卡
  4. 从客户发送http请求到服务器返回http之间发生了什么
  5. 基于Java8的日期时间工具类DateTimeFormatter
  6. java相关网址汇总(myself)
  7. python requests包的基本使用
  8. 【最短路+较复杂处理】PAT-L3-005. 垃圾箱分布
  9. 前端学习笔记--CSS布局--盒子模型
  10. Codeforces Round #609 (Div. 2) C. Long Beautiful Integer