codevs 最佳落点(模拟)

/*
这题并没有A掉 自己电脑上运行ok提交就不对
预处理攻击范围 然后模拟
求大神看看有没有错误
Orz
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;
ll g[25][25],ans=-10000000;
int n,m,f[125][125],px,py;
char s;
ll F(int x,int y)
{
    ll sum=0;
    for(int i=1;i<=m;i++)
      for(int j=1;j<=n;j++)
        {
          int nx=px+i-x;
          int ny=py+j-y;
          if(nx<=n&&nx>0&&ny<=m&&ny>0&&f[nx][ny]==1)sum+=g[i][j];
        }
    return sum;
}
int main()
{
    int x=0,y=0,o=0;
    memset(f,-1,sizeof(f));
    x++;
    while(1)
      {
          s=getchar();y++;
          if(s==‘.‘)f[x][y]=1;
        px=max(px,x);py=max(py,y);
          if(s==‘\n‘)o++,y=0;
          if(o%2==0&&o!=0&&s==‘\n‘)x++,y=0;
        if(s>=‘0‘&&s<=‘9‘)break;
      }
    int p=0;
    while(s>=‘0‘&&s<=‘9‘)
      {
          p=p*10+s-‘0‘;s=getchar();
      }
    n=p;
    px=(px+1)/2;py=(py+1)/2;
    cin>>m;
    for(int i=1;i<=m;i++)
      for(int j=1;j<=n;j++)
        cin>>g[i][j];
    for(int i=1;i<=m;i++)
      for(int j=1;j<=n;j++)
        ans=max(ans,F(i,j));
    printf("%lld\n",ans);
    return 0;
}
时间: 2024-08-06 11:56:46

codevs 最佳落点(模拟)的相关文章

智能汽车、无人驾驶正面临伦理困境?

人类的欲望是无限的,对世界的探索也从未停止,除了满足好奇心之外,更重要的原因是要迎合人性的弱点,比如贪婪.自私.懒惰等等.在出行方面,人类最早要自己走路,追着太阳走也不是什么事儿,甚至能轻轻松松地攀上高崖和灌木丛,后来人类懒得自己走路,而且发现马儿能日行千里,虽然会遇到"千里马常有,而伯乐不常有"的窘境,但不得不承认,马车承载了人类历史上一大块的脚力,唐僧去西天取经,无一日不是骑着白龙马,一些韬光养晦的英国皇室,常坐在马车上享受人生,更不要提古代战争中,高级将士们的坐骑了.到了现代社会

codevs 1083 1083 Cantor表【模拟+二分改进】

题目链接: http://codevs.cn/problem/1083/ 一个模拟题,列表出来就是酱紫: 这样为了找到数据在哪一组,很明显就要二分一下,自己写一个改进的二分,类似STL中的lower_bound... 1 #pragma comment(linker, "/STACK:16777216") //防爆栈 2 #include<iostream> 3 #include<algorithm> 4 #include<cstdio> 5 #in

codevs 1051 接龙游戏(栈模拟)

传送门 Description 给出了N个单词,已经按长度排好了序.如果某单词i是某单词j的前缀,i->j算一次接龙(两个相同的单词不能算接龙). 你的任务是:对于输入的单词,找出最长的龙. Input 第一行为N(1<=N<=105).以下N行每行一个单词(由小写组成),已经按长度排序.(每个单词长度<50) Output 仅一个数,为最长的龙的长度. Sample Input 5 i a int able inter Sample Output 3 思路   某单词i是某单词j

javascript模拟类的最佳实践

1:如何模拟一个类 在sencha touch2 系列里面定义一个类和new出这个类的对象 Ext.define( "Animal", { config: { name: null }, constructor: function(config) { this.initConfig(config); }, speak: function() { console.log('说点什么'); } } ) var my=Ext.create("Animal",{name:&

2015.9.11模拟赛 codevs 4159【hzwer的迷の数列】

题目描述 Description hzwer找了一个人畜无害的迷の数列…… 现在hzwer希望对这个数列进行一些操作,请你来回答hzwer的问题. 操作一:查询第i个数的大小 操作二:把第i个数的大小改成x 操作三:将整个序列反转.即把第i个数放到第n-i+1个. 输入描述 Input Description 输入数据第一行两个数n,m,表示数列长度和操作数. 第二行n个数,表示n个元素初始值. 以下m行,每行开头一个数opr,表示操作种类. opr=1,则后面接一个数i,表示查询第i个数大小.

codevs 1569 最佳绿草

时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 贝茜正计划着这一天如何美美地咀嚼春天的绿草,远望着农民约翰钟爱的并被分割为R (1 <= R <= 100) 行和 C (1 <= C <= 100) 列的草场.她想去数一数草场有多少个草丛. 每个草丛在地图上用'#'来表示,或者两个'#'连在一起(但不是在一个对角线),给出草场地图,请告诉贝茜草场上一共有多少个草丛. 例如,下面有一张草场地图 R=5, C=6: .

2015.9.11模拟赛 codevs 4160【会玩的】

题目描述 Description hzwer真的很会玩啊…他有一个n*m的方格,每次可以给方格添加一整行或一整列,但是不能删除.现在他想要让总格子数超过k个,但是又想让总格子数尽可能小.请找出这时的n,m.如果有多解,输出任意一种方案. 输入描述 Input Description 一行3个数n,m,k. 输出描述 Output Description 第一行一个数ans,表示此时的方格数. 第二行两个数m’,n’,表示此时的行数列数.如果有多解,输出任意一种方案 样例输入 Sample Inp

操作系统——请求调页存储管理方式的各种模拟

1.设计目的 通过对页面.页表.地址转换和页面置换过程的模拟,加深对请求调页系统的原理和实现过程的理解. 2.设计内容 1)假设每个页面中可存放10条指令,分配给作业的内存块数为4. 2)用c语言模拟一个作业的执行过程,该作业共有320条指令,即它的地址空间为32页,目前它的所有页都还未调入内存.在模拟过程中,如果所访问的指令已在内存,则显示其物理地址,并转下一条指令.如果所访问的指令还未装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存.如果4个内存块均已装入该作业,则需进行页面置

内存分配算法 之 首次适应-最佳适应

程序在向操作系统申请内存空间的时候,操作系统会扫描空闲块链表并从中取出一块足够大的分配,与之对应的算法有 首次适应 和 最佳适应,顾名思义,首次适应就是把首次遇到的足够大的空闲块分配给应用程序,最佳适应就是扫描完空闲块链表把大小与申请空间最匹配的空闲块分配给应用程序. mem.h        程序用到的头文件 main.c       主函数 fit.c        具体的实现函数 这里使用make来编译使用,若是读者还没接触过make的, 请移步参考我写的这篇文章:http://netca