第一题

一个很奇怪的贪心。先排序一遍,再扫描一遍,能加入尽量加入,不能加入就一定不能加入。。由于每次都在可能的最早时间加入一个数可以保证差最小?反正差不多这样了。

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的更多相关文章

  1. 初识DSP

    初识DSP 1.TI DSP的选型主要考虑处理速度.功耗.程序存储器和数据存储器的容量.片内的资源,如定时器的数量.I/O口数量.中断数量.DMA通道数等.DSP的主要供应商有TI,ADI,Motor ...

  2. DSP连接不上CCS3.3的问题讨论

    环境 操作系统:Win7, 64bit IDE:CCS V3.3 仿真器:SEED XDS510PLUS DSP型号:TMS320C6713GDP(DSP6713) 检查步骤 试着按下复位按键后再点击 ...

  3. ulogd(一)

    参考资料: https://blog.csdn.net/eydwyz/article/details/52456335 https://blog.csdn.net/chinalinuxzend/art ...

  4. am335x mux配置

    /**************************************************************** * am335x mux配置 * * am335x的引脚复寄存器是C ...

  5. am335x gpio分析

    /************************************************************************ * am335x_gpio * 本文主要记录am33 ...

  6. DSP28335的上手试用LED灯闪烁-第一篇

    1. 本次以三兄弟的DSP28335开发板为例,看下JTAG接口,EMU0,EMU1的用途,不是很懂,不深入研究,用到再说 EMU0/1是TI芯片的JTAG才有的信号,本身不属于JTAG标准里的信号, ...

  7. Android 模拟器 下载、编译及调试

    Android 模拟器源码下载 Android 模拟器源码的下载与 Android AOSP 源码库的下载过程类似,可以参考 Google 官方提供的 Android 源码下载文档 来了解这个过程. ...

  8. Android 模拟器下载、编译及调试

    Android 模拟器源码下载 Android 模拟器源码的下载与 Android AOSP 源码库的下载过程类似,可以参考 Google 官方提供的 Android 源码下载文档 来了解这个过程. ...

随机推荐

  1. MVC4 code first 增加属性,对应自动修改列的方法笔记

    VS工具>库程序包管理器>程序包管理控制台,然后输入以下命令 enable-migrations -contexttypename Mvc4Application1.Models.Movi ...

  2. java和linux的编码

    最近要使用中科院计算所的关键词工具NLPIR,用java调用,在windows下测试后放到linux下跑,就发现会有乱码. windows下默认是GBK,linux下是utf-8,因此在意料之中(尽管 ...

  3. 【转载】Velocity模板引擎的介绍和基本的模板语言语法使用

    原文地址http://www.itzhai.com/the-introduction-of-the-velocity-template-engine-template-language-syntax- ...

  4. BZOJ-1879 Bill的挑战 状态压缩DP

    MD....怎么又是状压....... 1879: [Sdoi2009]Bill的挑战 Time Limit: 4 Sec Memory Limit: 64 MB Submit: 537 Solved ...

  5. 我对Padding Oracle Attack的分析和思考

    道哥的<白帽子讲web安全>有一章提到Padding Oracle Attack的攻击方式,据说这货在2011年的Pwnie Rewards上还被评为"最具价值的服务器漏洞&qu ...

  6. php中图片文件的导入,上传与下载

    ---------------------------------------------图片的导入-------------------------------------------------- ...

  7. UVa OJ 140 - Bandwidth (带宽)

    Time limit: 3.000 seconds限时3.000秒 Problem问题 Given a graph (V,E) where V is a set of nodes and E is a ...

  8. FITTING A MODEL VIA CLOSED-FORM EQUATIONS VS. GRADIENT DESCENT VS STOCHASTIC GRADIENT DESCENT VS MINI-BATCH LEARNING. WHAT IS THE DIFFERENCE?

    FITTING A MODEL VIA CLOSED-FORM EQUATIONS VS. GRADIENT DESCENT VS STOCHASTIC GRADIENT DESCENT VS MIN ...

  9. pthread clean up

    https://www.ibm.com/developerworks/cn/linux/thread/posix_threadapi/part4/ http://www.cnblogs.com/xfi ...

  10. Mutex和内存可见性

    http://ifeve.com/mutex-and-memory-visibility/ POSIX内存可见性规则 IEEE 1003.1-2008定义了XBD 4.11内存同步中的内存可见性规则. ...