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 源码下载文档 来了解这个过程. ...
随机推荐
- 百度地图 api 功能封装类 (ZMap.js) 本地搜索,范围查找实例 [源码下载]
相关说明 1. 界面查看: 吐槽贴:百度地图 api 封装 的实用功能 [源码下载] 2. 功能说明: 百度地图整合功能分享修正版[ZMap.js] 实例源码! ZMap.js 本类方法功能大多使用 ...
- Windows Office key 持续更新地址
微软 Windows Office 系列序列号,每日都有更新,上面显示的基本都可用,包括MAK及Retail Key. Windows 10 http://textuploader.com/52 ...
- [转]不再以讹传讹,GET和POST的真正区别
原文地址:http://www.nowamagic.net/librarys/veda/detail/1919 如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历 前几天有人问我这个 ...
- 关于obj和基本类通过函数参数传进去执行是否改变原来的值
var obj = { p1 : 1, p2 : 2 }; (function(_/* 这个东东是地址的应用哦 */){ _.p1 = 3, _.p2 = 4 })(obj) var i = 2; ( ...
- hdu3535 混合背包
分三种情况. 至少取一种 那可以直接取 或者从上一种情况来取.dp[i][k]=max(dp[i][k],dp[i-1][k-a[j].c]+a[j].v,dp[i][k-a[j].c]+a[j].v ...
- Spring 管理数据源
Spring 管理数据源 不管通过何种持久化技术,都必须通过数据连接访问数据库,在Spring中,数据连接是通过数据源获得的.在以往的应用中,数据源一般是Web应用服务器提供的.在Spring中,你不 ...
- 打印cell的视图层次结构
#ifdef DEBUG NSLog(@"Cell recursive description:\n\n%@\n\n", [cell performSelector:@select ...
- BZOJ-1227 虔诚的墓主人 树状数组+离散化+组合数学
1227: [SDOI2009]虔诚的墓主人 Time Limit: 5 Sec Memory Limit: 259 MB Submit: 914 Solved: 431 [Submit][Statu ...
- BZOJ4590 自动刷题机
Description 曾经发明了信号增幅仪的发明家SHTSC又公开了他的新发明:自动刷题机--一种可以自动AC题目的神秘装置.自动 刷题机刷题的方式非常简单:首先会瞬间得出题目的正确做法,然后开始写 ...
- linux系统编程----统计一个目录下的普通文件个数
主要是为了统计linux系统下一个指定目录下面的普通文件个数,运用目录操作的一些函数,配合递归调用来实现该功能. 首先介绍一下函数原型: 打开一个空目录 DIR ...