zoukankan      html  css  js  c++  java
  • code forces Jeff and Periods

    /*
     * c.cpp
     *
     *  Created on: 2013-10-7
     *      Author: wangzhu
     */
    
    #include<cstdio>
    #include<iostream>
    using namespace std;
    #define NMAX 100010
    struct Node {
        //index:表示两个数直接的距离(-1:表示未开始,0:表示开始:> 0:表示有了距离
        //val:记录最后一次的位置
        //flag:不符合条件 (0:表示符合条件,1:表示不符合条件)
        int index, val, flag;
    } node[NMAX];
    int main() {
        freopen("data.in", "r", stdin);
        int n,val,k;
        while(~scanf("%d",&n)) {
            for(int i = 0;i < NMAX;i++) {
                node[i].index = -1;
                node[i].val = 0;
                node[i].flag = 0;
            }
    
            for(int i = 1;i <= n;i++) {
                scanf("%d",&val);
                if(node[val].index > 0) {
                    if(node[val].index != i - node[val].val) {
                        node[val].flag = 1;
                    }
                } else {
                    if(node[val].val > 0) {
                        node[val].index = i - node[val].val;
                    } else {
                        node[val].index = 0;
                    }
                }
                node[val].val = i;
            }
            k = 0;
            for(int i = 0;i < NMAX;i++) {
                if(node[i].index != -1 && node[i].flag == 0) {
                    k++;
                }
            }
            printf("%d
    ",k);
            for(int i = 0;i < NMAX;i++) {
                if(node[i].index != -1 && node[i].flag == 0) {
                    printf("%d %d
    ",i,node[i].index);
                }
            }
        }
        return 0;
    }

    超时的方法,如下:

    /*
     * c.cpp
     *
     *  Created on: 2013-10-7
     *      Author: wangzhu
     */
    
    #include<cstdio>
    #include<iostream>
    using namespace std;
    #define NMAX 100010
    struct Node {
        int index, val;
    } node[NMAX];
    int main() {
        freopen("data.in", "r", stdin);
        int n,val,k,tempIndex;
        bool flag;
        Node tempNode;
        while(~scanf("%d",&n)) {
            for(int i = 0;i < n;i++) {
                scanf("%d",&val);
                node[i].index = i;
                node[i].val = val;
            }
            for(int i = 0;i < n;i++) {
                for(int j = 0;j < n - i -1;j++) {
                    if(node[j].val > node[j + 1].val) {
                        tempNode = node[j];
                        node[j] = node[j+1];
                        node[j+1] = tempNode;
                    }
                }
            }
            k = 0;
            flag = true;
            for(int i = 0;i < n;) {
                tempNode = node[i];
                tempIndex = 0;
                flag = true;
                while(i < n && tempNode.val == node[i].val) {
                    if(tempIndex == 0) {
                        tempIndex = node[i].index - tempNode.index;
                    } else {
                        if(tempIndex != node[i].index -tempNode.index) {
                            flag = false;
                        }
                    }
                    tempNode = node[i];
                    i++;
                }
                if(flag) {
                    node[k].val = tempNode.val;
                    node[k].index = tempIndex;
                    k++;
                }
            }
            printf("%d
    ",k);
            for(int i = 0;i <k;i++) {
                printf("%d %d
    ",node[i].val,node[i].index);
            }
        }
        return 0;
    }
  • 相关阅读:
    js解析json数据
    json.stringify
    [Eclipse的Maven项目搭建,仅为测试Maven功能]如何在Eclipse下搭建Maven项目
    在 Windows 中配置Maven:
    jsp引入文件时候经常遇到的${ctx}
    <%%> <%! %> <%=%> <%-- --%> jsp中jstl一些运用
    Spring MVC之@RequestBody, @ResponseBody 详解
    Spring MVC之@RequestMapping 详解
    Spring MVC之@RequestParam @RequestBody @RequestHeader 等详
    @RequiresPermissions 解释
  • 原文地址:https://www.cnblogs.com/xiaoxian1369/p/3356393.html
Copyright © 2011-2022 走看看