zoukankan      html  css  js  c++  java
  • ZOJ Problem Set

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5336

    比较简单的模拟题,题意也很好理解。

      1 #include <iostream>
      2 #include <cstdio>
      3 #include <cmath>
      4 #include <vector>
      5 #include <cstring>
      6 #include <string>
      7 #include <algorithm>
      8 #include <string>
      9 #include <set>
     10 #include <functional>
     11 #include <numeric>
     12 #include <sstream>
     13 #include <stack>
     14 #include <map>
     15 #include <queue>
     16 
     17 #define CL(arr, val)    memset(arr, val, sizeof(arr))
     18 
     19 #define ll long long
     20 #define inf 0x7f7f7f7f
     21 #define lc l,m,rt<<1
     22 #define rc m + 1,r,rt<<1|1
     23 #define pi acos(-1.0)
     24 
     25 #define L(x)    (x) << 1
     26 #define R(x)    (x) << 1 | 1
     27 #define MID(l, r)   (l + r) >> 1
     28 #define Min(x, y)   (x) < (y) ? (x) : (y)
     29 #define Max(x, y)   (x) < (y) ? (y) : (x)
     30 #define E(x)        (1 << (x))
     31 #define iabs(x)     (x) < 0 ? -(x) : (x)
     32 #define OUT(x)  printf("%I64d
    ", x)
     33 #define lowbit(x)   (x)&(-x)
     34 #define Read()  freopen("a.txt", "r", stdin)
     35 #define Write() freopen("b.txt", "w", stdout);
     36 #define maxn 1000000000
     37 #define N 55
     38 using namespace std;
     39 
     40 int n,m,f,k;
     41 char A[N][N],B[N][N];
     42 int dir[8][2]={{-1,0},{-1,1},{-1,-1},{0,1},{0,-1},{1,0},{1,1},{1,-1}};
     43 struct point
     44 {
     45     int x,y,t;
     46     bool operator < (const point &a) const
     47     {
     48         return t<a.t;
     49     }
     50 }p[N*N];
     51 
     52 void solve()
     53 {
     54     for(int i=0;i<n;i++)
     55     {
     56         for(int j=0;j<m;j++)
     57         {
     58             B[i][j]=A[i][j];
     59             int ans=0;
     60             for(int k=0;k<8;k++)
     61             {
     62                 int x=i+dir[k][0];
     63                 int y=j+dir[k][1];
     64                 if(x<0||x>=n||y<0||y>=m) continue;
     65                 if(A[x][y]=='1') ans++;
     66             }
     67             if(A[i][j]=='1')
     68             {
     69                 if(ans<2) B[i][j]='0';
     70                 else if(ans>3) B[i][j]='0';
     71                 else B[i][j]='1';
     72             }
     73             else if(A[i][j]=='0')
     74             {
     75                 if(ans==3) B[i][j]='1';
     76             }
     77         }
     78     }
     79     for(int i=0;i<n;i++)
     80         for(int j=0;j<m;j++)
     81         A[i][j]=B[i][j];
     82 }
     83 int main()
     84 {
     85    //Read();
     86    //Write()
     87     int q;
     88     scanf("%d",&q);
     89     while(q--)
     90     {
     91         scanf("%d%d%d%d",&n,&m,&f,&k);
     92         getchar();
     93         for(int i=0;i<n;i++) scanf("%s",A[i]);
     94         for(int i=0;i<k;i++)
     95         {
     96             scanf("%d%d%d",&p[i].t,&p[i].x,&p[i].y);
     97             p[i].x--;
     98             p[i].y--;
     99         }
    100         sort(p,p+k);
    101         for(int i=1,j=0;i<=f;i++)
    102         {
    103             solve();
    104             while(p[j].t==i)
    105             {
    106                 A[p[j].x][p[j].y]='X';
    107                 j++;
    108             }
    109         }
    110         for(int i=0;i<n;i++)
    111             printf("%s
    ",A[i]);
    112     }
    113    return 0;
    114 }
  • 相关阅读:
    Winform_chart控件_心得
    Highcharts折线图_结合ajax实现局部刷新
    EasyUI_前台js_分页
    EasyUI_DataGrid数据操作
    EasyUI_前台js_省市县三级联动
    js gridview中checkbox的全选与全不选
    js 动态添加Table tr,选中与不选中checkbox行数NO的变化
    父子页面,有关弹框问题
    js ajax return false了,仍然会往下执行
    c#中异常捕获,回滚
  • 原文地址:https://www.cnblogs.com/nowandforever/p/4419029.html
Copyright © 2011-2022 走看看