emu1
第一题
一个很奇怪的贪心。先排序一遍,再扫描一遍,能加入尽量加入,不能加入就一定不能加入。。由于每次都在可能的最早时间加入一个数可以保证差最小?反正差不多这样了。
O(n log n)
#include <cstdio>
#include <algorithm>
bool cmp(int a,int b){
return a>b;
}
int m,n,i,j,k,f[200000],g[200000];
int sumn,sumd;
int main(){
freopen("stockman.in","r",stdin);
freopen("stockman.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=0;i<n;++i) scanf("%d",f+i);
for(i=0;i<m;++i) scanf("%d",g+i);
std::sort(f,f+n);
std::sort(g,g+m);
i=n-1;j=m-1;
while(i>=0 && j>=0){
//while using the jth stockman trying to match the ith pig
if(f[i]>=g[j]){
if(!(i&&j)||f[i-1]<=g[j]||f[i-1]>=g[j-1]){
++sumn;
sumd+=f[i]-g[j];
--i;
--j;
continue;
}
--i;
}else{
--j;
}
}
printf("%d\n%d\n",sumn,sumd);
return 0;
}
似乎有个更好的堆的解法?
#include <cstdio>
#include <queue>
#include <algorithm>
std::priority_queue<int> q;
int m,n,i,j,k,f[200000],g[200000];
int sumn,sumd;
int main(){
freopen("stockman.in","r",stdin);
freopen("stockman.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=0;i<n;++i) scanf("%d",f+i);
for(i=0;i<m;++i) scanf("%d",g+i);
std::sort(f,f+n);
std::sort(g,g+m);
for(i=0;i<n;++i){
while(f[i]>=g[j] && j<m){
q.push(g[j]);
++j;
}
if(!(q.empty())){
++sumn;
sumd+=f[i]-q.top();
q.pop();
}
}
printf("%d\n%d\n",sumn,sumd);
return 0;
}
第二题。。
先BFS一遍求出每个点与最近的敌人的距离,再二分答案能否到达,BFS求距离。
O(log{max(dis)==2000}mn)最沙茶的数据也可以过吧。。
#include <cstdio>
#include <cstring>
int qx[8000000],qy[8000000],qh,qt;
int f[2000][2000],m,n,i,j,k,x,y,x1,x2,y1,y2;
bool accessed[2000][2000];
char ch;
int left,right,mid,ans,ansl;
int minl[2000][2000];
inline void relax(int x,int y,int v){
if(accessed[x][y]) return;
if(x<0 || y<0 || x==n || y==m) return;
f[x][y]=v;
accessed[x][y]=true;
qx[qt]=x;
qy[qt++]=y;
}
inline void relax2(int x,int y,int v,int l){
if(accessed[x][y] || f[x][y]<l) return;
if(x<0 || y<0 || x==n || y==m) return;
minl[x][y]=v;
accessed[x][y]=true;
qx[qt]=x;
qy[qt++]=y;
}
bool check(int least){
memset(accessed,0,sizeof accessed);
qh=qt=0;
qx[qt]=x1;
qy[qt++]=y1;
minl[x1][y1]=0;
accessed[x1][y1]=true;
while(qh!=qt){
x=qx[qh];
y=qy[qh++];
i=minl[x][y]+1;
relax2(x,y+1,i,least);
relax2(x,y-1,i,least);
relax2(x+1,y,i,least);
relax2(x-1,y,i,least);
}
return accessed[x2][y2];
}
int main(){
freopen("escape.in","r",stdin);
freopen("escape.out","w",stdout);
scanf("%d%d%d%d%d%d%d",&k,&n,&m,&x1,&y1,&x2,&y2);
for(i=0;i<k;++i){
scanf("%d%d",&x,&y);
qx[qt]=x;
qy[qt++]=y;
}
while(qh!=qt){
x=qx[qh];
y=qy[qh++];
i=f[x][y]+1;
relax(x,y+1,i);
relax(x,y-1,i);
relax(x+1,y,i);
relax(x-1,y,i);
}
left=0;right=f[x1][y1];
while(left<=right){
mid=(left+right)/2;
if(check(mid)){
left=mid+1;
ans=mid;
ansl=minl[x2][y2];
}else{
right=mid-1;
}
}
printf("%d %d\n",ans,ansl);
return 0;
}
第三题
orz WJZ神犇的双参数SPFA。
______________________________________________________________________
emu1的更多相关文章
- 初识DSP
初识DSP 1.TI DSP的选型主要考虑处理速度.功耗.程序存储器和数据存储器的容量.片内的资源,如定时器的数量.I/O口数量.中断数量.DMA通道数等.DSP的主要供应商有TI,ADI,Motor ...
- DSP连接不上CCS3.3的问题讨论
环境 操作系统:Win7, 64bit IDE:CCS V3.3 仿真器:SEED XDS510PLUS DSP型号:TMS320C6713GDP(DSP6713) 检查步骤 试着按下复位按键后再点击 ...
- ulogd(一)
参考资料: https://blog.csdn.net/eydwyz/article/details/52456335 https://blog.csdn.net/chinalinuxzend/art ...
- am335x mux配置
/**************************************************************** * am335x mux配置 * * am335x的引脚复寄存器是C ...
- am335x gpio分析
/************************************************************************ * am335x_gpio * 本文主要记录am33 ...
- DSP28335的上手试用LED灯闪烁-第一篇
1. 本次以三兄弟的DSP28335开发板为例,看下JTAG接口,EMU0,EMU1的用途,不是很懂,不深入研究,用到再说 EMU0/1是TI芯片的JTAG才有的信号,本身不属于JTAG标准里的信号, ...
- Android 模拟器 下载、编译及调试
Android 模拟器源码下载 Android 模拟器源码的下载与 Android AOSP 源码库的下载过程类似,可以参考 Google 官方提供的 Android 源码下载文档 来了解这个过程. ...
- Android 模拟器下载、编译及调试
Android 模拟器源码下载 Android 模拟器源码的下载与 Android AOSP 源码库的下载过程类似,可以参考 Google 官方提供的 Android 源码下载文档 来了解这个过程. ...
随机推荐
- 今天学习到的关于mysql数据库的linux命令
1. 登录mysql数据库: mysql -uroot -p 2.安装会提示的mysql的数据库软件:mycli sudo apt-get install mycli 3.安装依赖包: sudo ap ...
- 给java应用打包
C:\dollapp\classes> jar -cvf C:\dollapp\deploy\dollapp.jar *.* 上面的jar命令会把 C:\dollapp\classes 下的 所 ...
- Qt无边框,可移动窗口
QPoint dragPosition; void MainWindow::mousePressEvent(QMouseEvent *event) { if(event->button()==Q ...
- hdu2444 判断二分图+最大匹配
#include<stdio.h> #include<string.h> #include<queue> using namespace std; #define ...
- 【CodeForces 611C】New Year and Domino
题 题意 h行w列的矩形格子,“." 代表空的,"#" 代表满的,多米诺是 1*2 的长方体,现在放进格子,给你子矩形的左上角和右上角,问在子矩形里共有多少种放一块多米诺 ...
- Springside学习
http://blog.chinaunix.net/uid-122937-id-3935052.html [一]Maven + Eclipse + springside4安装与配置 Maven安装与配 ...
- 总结css之内联图片的优缺点
会不会有这样一种感觉?IT技术开发知识面很广也很深,总会有你不懂得问题出现.一个接着一个新的问题,一个接着一个新的挑战. 今天,解读[内联图片],什么是内联图片,使用内联图片的优缺点是什么?这个问题是 ...
- BZOJ 3224 TYVJ 1728 普通平衡树 [Treap树模板]
3224: Tyvj 1728 普通平衡树 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 7390 Solved: 3122 [Submit][S ...
- spring全注解项目
项目结构如下: spring配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&q ...
- Unix 目录结构的来历
Unix(包含Linux)的初学者,常常会很困惑,不明白目录结构的含义何在.Unix 目录结构的来历举例来说,根目录下面有一个子目录/bin,用于存放二进制程序.但是,/usr子目录下面还有/usr/ ...