----------------------------------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 ;
}

2017.11.8 Noip2017 考前模拟赛的更多相关文章

  1. 2017.11.7 Noip2017 考前模拟赛

    ----------------------------------T1---------------------------------- ——>数学老师的报复 题目描述 11 班数学大佬 Y ...

  2. 2019.11.9 csp-s 考前模拟

    2019.11.9 csp-s 考前模拟 是自闭少女lz /lb(泪奔 T1 我可能(呸,一定是唯一一个把这个题写炸了的人 题外话: 我可能是一个面向数据编程选手 作为一个唯一一个写炸T1的人,成功通 ...

  3. 2017.9.17校内noip模拟赛解题报告

    预计分数:100+60+60=220 实际分数:100+60+40=200 除了暴力什么都不会的我..... T1 2017.9.17巧克力棒(chocolate) 巧克力棒(chocolate)Ti ...

  4. 2016.11.6 night NOIP模拟赛 考试整理

    题目+数据:链接:http://pan.baidu.com/s/1hssN8GG 密码:bjw8总结: 总分:300分,仅仅拿了120份. 这次所犯的失误:对于2,3题目,我刚刚看就想到了正确思路,急 ...

  5. 【NOIP考前模拟赛】纯数学方法推导——旅行者问题

    一.写在前面 这题似乎是一道原创题目(不是博主原创),所以并不能在任何OJ上评测,博主在网盘上上传了数据(网盘地址:http://pan.baidu.com/s/1mibdMXi),诸位看官需者自取. ...

  6. 【XJOI】【NOI考前模拟赛7】

    DP+卡常数+高精度/  计算几何+二分+判区间交/  凸包 首先感谢徐老师的慷慨,让蒟蒻有幸膜拜了学军的神题.祝NOI2015圆满成功 同时膜拜碾压了蒟蒻的众神QAQ 填填填 我的DP比较逗比……( ...

  7. 2017.11.7~8模拟测试总结---暨NOIP2017考前对策

    最后两天了,第三天就是NOIP2017--Day1了. 刚刚考完了这个学期从开学以来的最后一场模拟赛了.首先要对于这场模拟赛做一次深刻的反思. 考完才猛地惊叹这是最后一场模拟赛了,然而题目并不难,也保 ...

  8. [OI笔记]NOIP2017前(退役前)模拟赛的总结

    好久没写blog了- 在noip2017前的最后几天,也就是在我可能将要AFO的前几天写点东西吧- 记录这最后几个月打的那些大大小小的模拟赛 一些比赛由于不允许公开所以就没有贴链接跟题面了- 2017 ...

  9. NOIp2017真题模拟赛 By cellur925

    果然我还是最菜的==不接受反驳 (先考了day2喵喵喵) Day2 T1:奶酪 期望得分:100分 实际得分:100分 考察:并查集 思路:这题其实之前做过了==.思路还是比较清晰的,读入时预处理出可 ...

随机推荐

  1. hadoop 完全分布式搭建总结

    完全分布式--------------- 1.配置文件 [core-site.xml] hdfs 地址 fs.defaultFS=hdfs://s129:8020/ [hdfs-site.xml] 副 ...

  2. Web Services使用SOAP Header

    在Web Services方法进行通信使用SOAP遵循标准的SOAP格式,该格式的一部分是在XML文档中编码的数据.XML文档包含一个Envelope根元素(由必需的Body元素和可选的Header元 ...

  3. python之统计字符串中字母出现次数

    dic=dict() d={} s=set() s='helloworld' (1)d=dict() for x in s: if x not in d.keys(): d[x]=1 else: d[ ...

  4. glance

    第二篇glance— 镜像服务 一.glance介绍:              Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供 ...

  5. 【实战】SQL注入小脚本

    1.ORACLE布尔型盲注 import urllib import urllib2 import requests payloads = '_ABCDEFGHIJKLMNOPQRSTUVWXYZ' ...

  6. Linux之virtualenv和virtualenvwrapper

    一,介绍 在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题:亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难.此时,我们需要对于不同的工 ...

  7. linux运维之路配置网络

    前言裸机上装操作系统,想和物理机通信需要设置IP 开机以后: 第一步:setup命令  ——>  NetWork configguation  ---->Device configurat ...

  8. C++——virtual function

    无论是pure virtual还是impure virtual,都允许子类override他.但是真两种方式还是有一点差别,如果是pure virtual,那么父类是十分强烈希望子类override他 ...

  9. evpp http response_http_code_

    response_http_code_  909 例子代码   evpp  代码内例子 注释 可以读一下

  10. NAT和PAT

    地址转换技术 优点: 内网能够主动访问外网 外网不能主动访问内网 内网安全 节省公网ip地址 缺点:慢   PAT 端口地址转换 节省公网IP 替换源端口和源地址 NAT 不节省公网IP 一个公网地址 ...