NOIP 2013 DAY 1

DAY1

T1 转圈游戏

快速幂模板

#include<bits/stdc++.h>
using namespace std;
int n,m,k,x;
long long ans;
long long cmd(long long a,long long b){long long sum=1;for(;a;a>>=1){if(a&1){sum=sum*b%n;}b=b*b%n;
}
return sum;
}
int main(){//freopen("circle.in","r",stdin);//freopen("circle.out","w",stdout);cin>>n>>m>>k>>x;ans=(x+m*cmd(k,10))%n;cout<<ans;return  0;
}

T2 火柴排队

通过读题我们发现,当b数组中第i小的数和a数组中第i小的数在同一个位置,就是最优的。然后利用下标的升序对c数组进行归并排序,得到答案。

#include<bits/stdc++.h>
#define mo 99999997
using namespace std;
struct node{int x,y;
}a[100001],b[100001];
int c[100001],p[100001];
int n;
int cmp(node a ,node b){if(a.x==b.x) return a.y<b.y;else return a.x<b.x;
}
int check(int l,int r){int ans,mid=(l+r)>>1,k=1;if(l>=r) return 0;ans=(check(l,mid)+check((mid+1),r))%mo;for(int i=l,j=mid+1;i<=mid||j<=r;){if(i<=mid&&j<=r&&c[i]>c[j]){p[k++]=c[j++];ans+=mid-i+1;}else if(i>mid){p[k++]=c[j++];}else{p[k++]=c[i++];}}for(int i=1;i<k;i++){c[l+i-1]=p[i];}return ans%mo;
}
int main(){//freopen(".in","r",stdin);
//  freopen(".out","w",stdout);cin>>n;for(int i=1;i<=n;++i){cin>>a[i].x;a[i].y=i;}sort(a+1,a+1+n,cmp);for(int i=1;i<=n;++i){cin>>b[i].x;b[i].y=i;}sort(b+1,b+1+n,cmp);
/*  for(int i=1;i<=n;i++){cout<<a[i].x<<" "<<a[i].y;cout<<endl;}for(int i=1;i<=n;i++){cout<<b[i].x<<" "<<b[i].y;cout<<endl;}for(int i=1;i<=n;i++){cout<<c[i]<<endl;}*/for(int i=1;i<=n;i++){c[a[i].y]=b[i].y;}cout<<check(1,n);
} 

T3 货车运输

在这里插入代码片

DAY 2

T1 积木大赛

把整个序列分成多个不下降子序列,然后所有段中最大值的和减去除第一段外的段的最小值。

#include<bits/stdc++.h>
using namespace std;
int n,h,maxx,down,last,ans;
int main(){
//  freopen("block.in","r",stdin);
//  freopen("block.out","w",stdout);cin>>n; for(int i=1;i<=n;i++){scanf("%d",&h);if(down==1 && h>last) {ans+=maxx-last,maxx=0;}maxx=max(maxx,h);if(i==n) ans+=maxx;if(h<last) down=1;last=h;}cout<<ans;
}

T2 花匠

由题目可知,两个要求分别为任意三个连续的元素满足先增后减或者先减后增,于是我们只需要在单调性发生改变时进行特判,贪心得出答案。

#include<bits/stdc++.h>
using namespace std;
int ans=1,flag,last,now,n;
int main(){//freopen("flower.in","r",stdin);
//  freopen("flower.out","w",stdout);cin>>n>>last;for (int i=2;i<=n;i++){scanf("%d",&now);if ((now>last) && ((flag==-1)||(flag==0))){ans++;flag=1;}else if ((now<last) && ((flag==0)||(flag==1))){ans++;flag=-1;}last=now;}cout<<ans;
}

T3 华容道

直接深搜,走过的点标记再交换,50pts

#include<bits/stdc++.h>
using namespace std;
const int X[] = {0,1,0,-1};
const int Y[] = {1,0,-1,0};
int m,n,ex,ey,a,b,c,d,ans,used[45][45][45][45],ma[50][50],q;
bool can(int x,int y)
{if(x<1||x>n) return false;if(y<1||y>m) return false;if(!ma[x][y]) return false;return true;
}
void dfs(int kx,int ky,int sx,int sy,int cnt)
{if(cnt>=ans) return;if(sx==ex&&sy==ey){ans=cnt;return;
}if(used[kx][ky][sx][sy] <= cnt) return;used[kx][ky][sx][sy]=cnt;for(int i=0;i<4;i++){int x=kx+X[i],y=ky+Y[i];if(can(x,y)){if(x==sx&&y==sy) dfs(x,y,kx,ky,cnt+1);else dfs(x,y,sx,sy,cnt+1);}}
}
int main(){cin>>n>>m>>q;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%d",&ma[i][j]);for(int i=1;i<=q;i++){memset(used,0x3f,sizeof(used));ans = 1e6;scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&ex,&ey);dfs(a,b,c,d,0);if(ans==1e6) cout<<-1;;else cout<<ans<<endl;}
}

满分暂时打不来(无能咆哮)

7.15 NOIP 2013相关推荐

  1. [NOIP 2013提高组]转圈游戏 题解

    这题在洛谷上是道黄题,即[普及/提高-] 所以虽然是提高组的,但是其实挺简单的. 我们来看下题面: [NOIP 2013]转圈游戏 刚看到题面作为一个蒟蒻感觉它都不配做黄题,但是直到我看清楚了后发现它 ...

  2. NOIP 2013 提高组 货车运输

    描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多 ...

  3. NOIP 2013 普及组初赛试题

    第 1 题 一个 32 位整型变量占用(A)个字节. A. 4 B. 8 C. 32 D. 128 常识题,每个32 位整型变量占4个字节 第 2 题 二进制数 11.01 在十进制下是(A). A. ...

  4. [NOIp 2013]货车运输

    Description A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重 ...

  5. 水题 逆序对 NOIP 2013 火柴排队

    题目如下 题目描述 Description 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度.现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为: ,其中 a ...

  6. NOIP 2013 货车运输

    题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多 ...

  7. NOIP 2013 华容道

    题目描述 [问题描述] 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次.于是,他想到用编程来完成华容道:给定一种局面, 华容道是否根本就无法完成,如果能完成, 最少需要多少时间. 小 ...

  8. 火车运输[NOIP 2013 提高组 Day 1]

    https://vijos.org/p/1843 本题 kruskal+倍增lca WA了三次 T_T 总结出一些注意事项: 1. 一定要想明白每一部分是求最大值还是最小值!!!(WA 1) 2. 注 ...

  9. Macbook Pro (15'', Late 2013) 外接技嘉显卡扩展坞 使用经验

    先放上电脑配置 笔者用的是2013款的macbook pro,配置目前看来还可以.机身上带有雷电2而不是雷电3接口,因为这个原因用外置显卡的效果就会大打折扣.即使如此,笔者用来训练的时候,时间上也比用 ...

  10. Noip 2013 练习

    转圈游戏 传送门 Solution 快速幂 Code //By Menteur_Hxy #include <cstdio> #include <cstdlib> #includ ...

最新文章

  1. 此字符不允许在标识符中使用_计算机中C语言的-基本语法
  2. 汇编转c语言,如何把汇编语言转换成C语言
  3. Struts2零配置介绍(约定访问)
  4. 如何给DataFrame的列命名或重命名。
  5. rocketmq 启动_016【windows版Rocketmq】小白学习Rocketmq单机部署
  6. Deque(双向队列 c++模版实现 算法导论第三版第十章10.1-5题)
  7. 关于“服务器提交了协议冲突. Section=ResponseStatusLine问题
  8. 什么是HTML5前端开发?HTML5前端要学哪些技术?
  9. 30余种加密编码类型的密文特征分析
  10. 做生意如何选一个好的行业,请记住这4点
  11. 1.卷1(套接字联网API)---简介
  12. [转]自定义UITableView各种函数
  13. 淘宝APP用户行为数据分析 by 一只废鹅
  14. 阿里云推送:Android8.0及以上收不到推送的解决
  15. 修改MFC程序的图标
  16. 简约至上:你必须知道的产品设计
  17. iOS NSFileManager文件管理(沙盒)
  18. 洞见2021 中国企业服务年会高清大图来啦~!请查收
  19. 淘宝新店刚开如何测款?
  20. selenium下对指定元素进行截图

热门文章

  1. sqlyog中导出sql语句
  2. 从零开始研发GPS接收机连载——4、GPS模拟器数据采集验证
  3. CSS从入门到精通——文本与字体样式
  4. python可以代替按键精灵吗_Python 假装自己是按键精灵
  5. TP5 使用redis
  6. 修改Python解释器和包路径
  7. JMeter脚本录制-快速上手篇
  8. 通过maven安装spire.pdf
  9. 【专栏必读】软件工程导论第六版(张海藩)专栏学习笔记目录导航
  10. GIS中常用的高程系