不想说什么了

poj 1703,从看完题到写完第一个版本的代码,只有15分钟

然后一直从晚上八点WA到第二天早上

最后终于发现了BUG,题目要求的“Not sure yet.”,我打成了“No sure yet.”

然后是RQNOJ的NOIP真题,经典的能量项链

从看完题到写完伪码用了30分钟,敲完全部代码用了10分钟

WA 了7次,次次只能过前三个点,后面全部超时。

不能够啊?我动态规划了都,怎么可能超时?

开始优化主函数。

发现通过一个比较,能把N * (N-1)的复杂度降到C(N,2)。

改了后提交,很好,多过了一个点,继续超时

XXXX,我最后发现,居然在递归函数中漏写了if(dp[start][end] != 0)return dp[start][end];!!

当时心中真的是一万匹草泥马碾压而过,还我青春啊!

然后全部10ms内AC了10个点

最后上这两个冤家的代码

加起来送了我10+个WA了吧?

好险我是学法的

POJ 1703:

#include <stdio.h>
typedef struct man
{
  int rev;
  int parent;
}man;
man set[100008];
int set_find(int p)
{
    if(p < 0)return -1;
    if(set[p].parent < 0)return p;
    return set[p].parent = set_find(set[p].parent);
}
void join(int p,int q)
{
    p = set_find(p);
    q = set_find(q);
    if(p != q)set[p].parent = q;
}
void deal(int p,int q)
{
    int tmp_rev1;
    int tmp_rev2;
    if(set[q].rev == -1)set[q].rev = p;
    if(set[p].rev == -1)set[p].rev = q;
    tmp_rev1 = set_find(set[p].rev);
    tmp_rev2 = set_find(set[q].rev);
    p = set_find(p);
    q = set_find(q);
    if(q != tmp_rev1)join(q,tmp_rev1);
    if(p != tmp_rev2)join(p,tmp_rev2);
}
void searchSet(int p,int q)
{
    p = set_find(p);
    q = set_find(q);
    if(p == q)
    {
        printf("In the same gang.\n");
    }
    else if(p == set_find(set[q].rev) || q == set_find(set[p].rev))
    {
        printf("In different gangs.\n");
    }
    else printf("Not sure yet.\n");
}
int main(void)
{
    int T;
    int N,M,i;
    int CASE;
    int num1,num2;
    char command;
    scanf("%d",&T);
    while(T --)
    {
        scanf("%d%d",&N,&M);
        if(N == 2)CASE = 1;
        else CASE = 0;
        for(i = 0;i <= N;i++)
        {
                set[i].parent = -1;
                set[i].rev = -1;
        }
        for(i = 0;i < M;i++)
        {
            getchar();
            command = getchar();
            scanf("%d%d",&num1,&num2);
            if(!CASE)
            {
                if(command == 'A')
                {
                    searchSet(num1,num2);
                }
                else if(command == 'D')
                {
                    deal(num1,num2);
                }
            }
            else printf("In different gangs.\n");
        }

}
    return 0;
}

RQNOJ 能量项链:

#include <stdio.h>
int dp[200][200];
int value[200];
int N;
int pre(int a)
{
    if(a == 0)return N - 1;
    else return a - 1;
}
int next(int a)
{
    if(a == N - 1)return 0;
    else return a +  1;
}
int fun(int start,int end)
{
    int tmp1,tmp2,i,j,max = 0,result;
    if(dp[start][end] != 0)return dp[start][end];
    if(start == end)return 0;
    for(i = start;i != end;i = next(i))
    {
                tmp1 = fun(start,i);
                tmp2 = fun(next(i),end);
                result = tmp1 + tmp2 + value[start] * value[next(i)] * value[next(end)];
                if(max < result)max = result;
    }
    return dp[start][end] = max;
}
int main(void)
{
    int i,j,result;
    int max,tmp1,tmp2;
    scanf("%d",&N);
    for(i = 0;i < N;i++)
        scanf("%d",&value[i]);
    max = 0;
    int count = 0;
    int size;
    for(i = 0;i < N;i++)
    {
        size = N - i - 1;
        count = 0;
        for(j = i;count < size;j = next(j),count++)
        {
            tmp1 = fun(i,j);
            tmp2 = fun(next(j),pre(i));
            if(value[next(j)] < value[i])
                result = tmp1 + tmp2 + value[i] * value[next(j)] * value[i];
            else result = tmp1 + tmp2 + value[next(j)] * value[next(j)] * value[i];
            if(max < result)max = result;
        }
    }
    printf("%d\n",max);
    return 0;
}

【原创】POJ 1703 && RQNOJ 能量项链解题报告的更多相关文章

  1. 【原创】leetCodeOj --- Sliding Window Maximum 解题报告

    天,这题我已经没有底气高呼“水”了... 题目的地址: https://leetcode.com/problems/sliding-window-maximum/ 题目内容: Given an arr ...

  2. POJ 2054 Color a Tree解题报告

    题干 Bob is very interested in the data structure of a tree. A tree is a directed graph in which a spe ...

  3. poj 3750 小孩报数问题 解题报告

    题目链接:http://poj.org/problem?id=3750 约瑟夫问题,直接模拟即可. #include <iostream> #include <string> ...

  4. [SDOI2009]HH的项链解题报告

    原题目:洛谷P1972 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断地收集新的贝壳,因此 ...

  5. 洛谷 P1972 [SDOI2009]HH的项链 解题报告

    P1972 [SDOI2009]HH的项链 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断 ...

  6. [NOI2010]能量采集 解题报告

    [NOI2010]能量采集 题目描述 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. ...

  7. poj 3617 Best Cow Line 解题报告

    题目链接:http://poj.org/problem?id=3617 题目意思:给出一条长度为n的字符串S,目标是要构造一条字典序尽量小,长度为n的字符串T.构造的规则是,如果S的头部的字母 < ...

  8. poj 2771 Guardian of Decency 解题报告

    题目链接:http://poj.org/problem?id=2771 题目意思:有一个保守的老师要带他的学生来一次短途旅行,但是他又害怕有些人会变成情侣关系,于是就想出了一个方法: 1.身高差距   ...

  9. poj 1274 The Perfect Stall 解题报告

    题目链接:http://poj.org/problem?id=1274 题目意思:有 n 头牛,m个stall,每头牛有它钟爱的一些stall,也就是几头牛有可能会钟爱同一个stall,问牛与 sta ...

随机推荐

  1. [Android学习笔记]获取view的尺寸和坐标

    对于UI方面很多时候需要获取它的很多信息,具体情况见view的文档 View文档 http://developer.android.com/training/index.html 常用方法:获取vie ...

  2. A Game of Thrones(19) - Jon

    The courtyard rang to the song of swords. Under black wool, boiled leather, and mail, sweat trickled ...

  3. activity_main.xml: java.lang.NullPointerException

    1.错误描写叙述 eclipse.buildId=4.4.0.I20140606-1215 java.version=1.7.0_67 java.vendor=Oracle Corporation B ...

  4. pomelo源代码分析(一)

    千里之行始于足下,一直说想了解pomelo,对pomelo有兴趣,但一直迟迟没有去碰,尽管对pomelo进行源代码分析,在网络上肯定不止我一个,已经有非常优秀的前辈走在前面,如http://golan ...

  5. ArcGIS多面体(multipatch)解析——引

    多面体(multipatch)结构在ArcGIS数据结构中是与点.线.面平行的一种数据结构,对于ArcGIS三维来说是一个很核心的结构,有了它,ArcGIS平台才可以灵活的描述规则和不规则的三维实体. ...

  6. ExtJS学习-------Ext正确Dom操作:Ext.get Ext.fly Ext.getDom

    详细实例: (1)创建JSP文件.引入CSS和js文件,加入三个Div <%@ page language="java" import="java.util.*&q ...

  7. (二十一)unity4.6学习Ugui中文文档-------交互-Supported Events &amp; Raycasters

    大家好,我是孙广东. 转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:mod=guide&view=m ...

  8. [置顶] android系统功能调用大全

    1.从google搜索内容  Intent intent = new Intent();  intent.setAction(Intent.ACTION_WEB_SEARCH);  intent.pu ...

  9. hdu 1849 (尼姆博弈)

    http://acm.hdu.edu.cn/showproblem.php? pid=1849 简单的尼姆博弈: 代码例如以下: #include <iostream> #include ...

  10. Java EE (13) -- 常用的基础结构模式

    • Replication    • Load balance     • Failover    • Off-load shared resources    • Forward cache • R ...