zoukankan      html  css  js  c++  java
  • CF #April Fools Day Contest 2016 E Out of Controls

    题目连接:http://codeforces.com/problemset/problem/656/E

    愚人节专场的E,整个其实就是个Floyd算法,但是要求代码中不能包含

    define
    do
    for
    foreach
    while
    repeat
    until
    if
    then
    else
    elif
    elsif
    elseif
    case
    switch

    这些关键词。

    如果不考虑屏蔽define,很容易想到将代码中用到的关键词全部define成其它不在列表中的词。但是define的时候还是得要写出原来的关键词,况且define也被屏蔽了,有一种方法是利用将代码分行。

    于是C++代码解决这道问题就成了如下所示

     1 #include <iostream>
     2 #include <vector>
     3 #include <algorithm>
     4 #include <string>
     5 #include <string.h>
     6 #include <stdio.h>
     7 #include <math.h>
     8 #include <queue>
     9 #include <stack>
    10 #include <map>
    11 #include <ctime>
    12 #include <set>
    13 using namespace std;
    14 const int N=12;
    15 #def
    16 ine foo fo
    17 r
    18 int g[N][N];
    19 int dis[N][N];
    20 void floyd(int n) {
    21     memcpy(dis,g,sizeof g);
    22     foo (int k=1; k<=n; k++){
    23         foo (int i=1; i<=n; i++){
    24             foo (int j=1; j<=n; j++) {
    25                 dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
    26             }
    27         }
    28     }
    29 }
    30 int main () {
    31     int n;
    32     cin>>n;
    33     foo (int i=1;i<=n;i++) {
    34         foo (int j=1;j<=n;j++) {
    35             cin>>g[i][j];
    36         }
    37     }
    38     floyd(n);
    39     int ret=0;
    40     foo (int i=1;i<=n;i++) {
    41         foo (int j=1;j<=n;j++) {
    42             ret=max(ret,dis[i][j]);
    43         }
    44     }
    45     cout<<ret<<endl;
    46     return 0;
    47 }
    View Code

    其实也可以直接写一个程序,生成代码(IO以及Floyd),但是没有上面的用分行显得雅观。

    除了C++也有很多语言也可以有办法做此题。还看到有人用PHP的解码来做,可惜我不懂PHP。

  • 相关阅读:
    Mbps、Kbps、bps、kb、mb区别和换算
    Python导入模块方法
    C# WinForm 程序免安装 .NET Framework(XP/win7/win10环境运行)
    生成缩略图
    WCF 的优势和特点
    不要在using语句中调用WCF服务
    pb getchild获取DropDownDW子窗体后进行取值
    Bootstrap后台管理模板调研
    PB调用C#编写的DLL
    PowerBuilder与嵌入浏览器交互
  • 原文地址:https://www.cnblogs.com/micrari/p/5374038.html
Copyright © 2011-2022 走看看