2017-11-8 NOIP模拟赛
1.足球联赛
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n;
struct node{
int sc,id;
}a[];
char s[][];
bool cmp(node x,node y){
if(x.sc!=y.sc)return x.sc>y.sc;
return x.id<y.id;
}
int main(){
freopen("soccer.in","r",stdin);freopen("soccer.out","w",stdout);
scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%s",s[i]+),a[i].id=i;
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
if(i==j)continue;
if(s[i][j]=='W')a[i].sc+=;
if(s[i][j]=='L')a[j].sc+=;
if(s[i][j]=='D')a[i].sc+=,a[j].sc+=;
}
}
sort(a+,a+n+,cmp);
int ans=a[].sc;printf("%d ",a[].id);
for(int i=;i<=n;i++){
if(a[i].sc!=ans)return ;
printf("%d ",a[i].id);
}
return ;
}
100分
2.最短路径
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<ctime>
#include<queue>
#define maxn 1010
using namespace std;
int n,b1,b2,pre[maxn];
double x[maxn],y[maxn],dis[maxn][maxn],d[maxn];
double ans=;
bool vis[maxn],v[maxn];
double Calc(double a1,double b1,double a2,double b2){
double res;
res=sqrt((a1-a2)*(a1-a2)+(b1-b2)*(b1-b2));
return res;
}
void dfs(int pos,double sum){
if(sum>=ans)return;
if(x[pos]>x[b1]&&vis[b1]==)return;
if(pos==n){
int p=n;
for(int i=n;i>=;i--){
if(!vis[i]){
sum+=dis[i][p];
p=i;
if(sum>=ans)return;
}
}
ans=min(ans,sum);
return;
}
for(int i=pos+;i<=n;i++){
if(i==b2)continue;
if(i==b1){
vis[i]=;
dfs(i,sum+dis[pos][i]);
vis[i]=;
break;
}
vis[i]=;
dfs(i,sum+dis[pos][i]);
vis[i]=;
}
} struct node{
double v;
int id;
bool operator < (const node x)const{
return v>x.v;
}
};
node make_node(double v,int id){
node res;res.v=v;res.id=id;
return res;
}
double Dij1(){
priority_queue<node>q;
q.push(make_node(,));
memset(vis,,sizeof(vis));
for(int i=;i<=n;i++)d[i]=;
d[]=;
while(!q.empty()){
node now=q.top();q.pop();
if(vis[now.id])continue;
vis[now.id]=;
for(int i=now.id+;i<=n;i++){
if(i>b1)break;
if(d[i]>d[now.id]+dis[now.id][i]){
d[i]=d[now.id]+dis[now.id][i];
q.push(make_node(d[i],i));
pre[i]=now.id;
}
}
}
}
double Dij2(){
priority_queue<node>q;
q.push(make_node(d[b1],b1));
vis[b1]=;
while(!q.empty()){
node now=q.top();q.pop();
if(vis[now.id])continue;
vis[now.id]=;
for(int i=now.id+;i<=n;i++){
if(d[i]>d[now.id]+dis[now.id][i]){
d[i]=d[now.id]+dis[now.id][i];
q.push(make_node(d[i],i));
pre[i]=now.id;
}
}
}
double res=;
int now=n;
while(now){
v[now]=;
res+=dis[now][pre[now]];
now=pre[now];
}
v[]=;
int p=n;
for(int i=n;i>=;i--){
if(!v[i]){
res+=dis[i][p];
p=i;
}
}
return res;
} int main(){
freopen("paths.in","r",stdin);freopen("paths.out","w",stdout);
// freopen("Cola.txt","r",stdin);
scanf("%d%d%d",&n,&b1,&b2);
b1++;b2++;
for(int i=;i<=n;i++)scanf("%lf%lf",&x[i],&y[i]);
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++){
double d=Calc(x[i],y[i],x[j],y[j]);
dis[i][j]=dis[j][i]=d;
}
if(n<=){//爆搜
dfs(,);
printf("%.2lf",ans);
return ;
}
else{//贪心
double ans1=,ans2=;
memset(v,,sizeof(v));
Dij1();
ans1=Dij2();
printf("%.2lf",ans1);
}
}
20分 暴力
3.阿Q的停车场
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,F,x,pos[],car[];
bool check(int x){
int cnt=;
for(int i=;i<=n;i++){
if(car[i]==)cnt++;
else cnt=;
if(cnt>=x)return ;
}
return ;
}
void Insert(int id){
int l=,r=,mid,len=;
while(l<=r){
mid=(l+r)>>;
if(check(mid))len=mid,l=mid+;
else r=mid-;
}
if(len%==)len-=;
l=,r=;
int Pos;
for(int i=;i<=n;i++){
if(car[i]==)r=i;
if(car[i]>)l=i+;
if(r-l+>=len)break;
}
if(r==n-&&car[n]==)r=n;
if(l==){
puts("");
pos[id]=;
car[]=id;
return;
}
else if(r==n){
printf("%d\n",n);
pos[id]=n;
car[n]=id;
return;
}
Pos=l+len/;
pos[id]=Pos;
car[Pos]=id;
printf("%d\n",Pos);
}
int main(){
// freopen("park.in","r",stdin);freopen("park.out","w",stdout);
// freopen("Cola.txt","r",stdin);
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++){
scanf("%d%d",&F,&x);
if(F==){
if(i==){
puts("");
car[]=x;
pos[x]=;
}
else Insert(x);
}
if(F==){
car[pos[x]]=;
pos[x]=;
}
}
}
10分 暴力
2017-11-8 NOIP模拟赛的更多相关文章
- 11/1 NOIP 模拟赛
11.1 NOIP 模拟赛 期望得分:50:实际得分:50: 思路:暴力枚举 + 快速幂 #include <algorithm> #include <cstring> #in ...
- 11.7 NOIP模拟赛
目录 2018.11.7 NOIP模拟 A 序列sequence(two pointers) B 锁lock(思路) C 正方形square(埃氏筛) 考试代码 B C 2018.11.7 NOIP模 ...
- 2017 10.25 NOIP模拟赛
期望得分:100+40+100=240 实际得分:50+40+20=110 T1 start取了min没有用,w(゚Д゚)w O(≧口≦)O T3 代码3个bug :数组开小了,一个细节没注意, ...
- 2017.5.27 NOIP模拟赛(hzwer2014-5-16 NOIP模拟赛)
期望得分:100+100+60+30=290 实际得分:100+20+60+0=180 当务之急:提高一次正确率 Problem 1 双色球(ball.cpp/c/pas) [题目描述] 机房来了新一 ...
- NOIP模拟赛-2018.11.7
NOIP模拟赛 如果用命令行编译程序可以发现没加头文件之类的错误. 如果用命令行编译程序可以发现没加头文件之类的错误. 如果用命令行编译程序可以发现没加头文件之类的错误. 编译之前另存一份,听说如果敲 ...
- NOIP模拟赛-2018.11.6
NOIP模拟赛 今天想着反正高一高二都要考试,那么干脆跟着高二考吧,因为高二的比赛更有技术含量(我自己带的键盘放在这里). 今天考了一套英文题?发现阅读理解还是有一些困难的. T1:有$n$个点,$m ...
- NOIP模拟赛-2018.11.5
NOIP模拟赛 好像最近每天都会有模拟赛了.今天从高二逃考试跑到高一机房,然而高一也要考试,这回好像没有拒绝的理由了. 今天的模拟赛好像很有技术含量的感觉. T1:xgy断句. 好诡异的题目,首先给出 ...
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
随机推荐
- Centos7部署NFS
server1:192.168.1.189 ###客户端 server2:192.168.1.190 ##服务端 1.首先创建共享目录. mkdir -p /data/share 安装nfs ...
- Tomcat_异常_02_IOException while loading persisted sessions: java.io.EOFException
异常原因: EOFException表示输入过程中意外地到达文件尾或流尾的信号,导致从session中获取数据失败. 这是由于tomcat上次非正常关闭时有一些活动session被持久化(表现为一些临 ...
- js的trim方法(转)
写成类的方法格式如下:(str.trim();) <script language="javascript"> String.prototype.trim=functi ...
- QTableWidget设计原则
一.组成结构: 列表控件由水平表头(self.horizontalHeader()).垂直表头(self.verticalHeader())和单元格(QTableWidgetItem)组成 其中表头又 ...
- UML图之例图
用例图主要说明的是谁要使用系统,以及他们使用该系统可以做些什么,帮助开发团队以一种可视化的方式理解系统的功能需求. 一个用例图包含了多个模型元素,如系统.参与者和用例,并且显示这些元素之间的各种关系, ...
- Oracle 12C 新特性之级联truncate
12c之前的版本中,在子表引用一个主表以及子表存在记录的情况下,是不提供截断此主表操作的.而在 12c 中的带有 CASCADE 操作的TRUNCATE TABLE 可以截断主表中的记录,并自动对子表 ...
- 升级MySQL 5.7版本遇到的一些小问题(转)
在5.6版本服务器做备份 /usr/local/mysql/bin/mysqldump -S /tmp/mysql3306.sock -A -p --set-gtid-purged=OFF > ...
- AI-Info-Micron-Menu:Products
ylbtech-AI-Info-Micron-Menu:Products 我们制造业界最广泛的存储器和存储技术产品组合:DRAM,NAND,NOR和3D XPoint™存储器. 凭借紧密的行业合作伙伴 ...
- 关于 vs 2012 键盘无法输入的问题
使用vs2012 新建了一个类文件之后,vs2012的编辑界面突然出现奇怪的问题,键盘无法输入! 最后调查的结果是由于resharper插件导致的. 可以将插件禁用然后启用. 也可以删除resharp ...
- js数组与 json 的区别
一,数组 1. 定义一维数组:var s1=new Array(); s1=[1,2,3,4]或者s1[0]=1,s1[1]=2,s1[3]=3,s1[4]=4; alert(s1[0]); 结果为1 ...