不想说什么了

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. codeforces 604B More Cowbell

    题目链接:http://codeforces.com/contest/604/problem/B 题意:n个数字,k个盒子,把n个数放入k个盒子中,每个盒子最多只能放两个数字,问盒子容量的最小值是多少 ...

  2. 纠正一个概念:类就有VMT,各实例不过是共享这个VMT而已

    不是只有实例才有VMT,举个例子,各实例的VMT地址是相同的: Use System.Contnrs; procedure TForm1.BitBtn2Click(Sender: TObject); ...

  3. 小议common lisp程序开发流程 - Ever 17 - 博客频道 - CSDN.NET

    小议common lisp程序开发流程 - Ever 17 - 博客频道 - CSDN.NET 小议common lisp程序开发流程 分类: lisp 2011-04-17 20:59 1316人阅 ...

  4. BI中事实表和维度表的定义

    一个典型的样例是,把逻辑业务比作一个立方体,产品维.时间维.地点维分别作为不同的坐标轴,而坐标轴的交点就是一个详细的事实.也就是说事实表是多个维度表的一个交点.而维度表是分析事实的一个窗体. 首先介绍 ...

  5. OpenGL--第一个OpenGL程序

    环境:VS2012 + OpenGL所需文件(其他IDE也可以,不一定要VS2012,VS2010或其他也可以) 步骤: 1.下载Vs2012 2.下载OpenGL所需文件 3.解压缩OpenGL包并 ...

  6. cookie是指web浏览器存储的少量数据,该数据会在每次请求一个相关的URL时自动传到服务器中(转)

    基本概念:cookie是指web浏览器存储的少量数据,该数据会在每次请求一个相关的URL时自动传到服务器中. 以博客园为例,我们看看cookie有哪些属性: 1.Name:cookie的名称: 2.V ...

  7. hdu5119(dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5119 分析:dp[i][j]表示由前i个数组成异或和为j的方法数,则dp[i][j]=d[i-1][j ...

  8. VBoxGuestAdditions.iso下载地址

    http://download.virtualbox.org/virtualbox/4.1.2/VBoxGuestAdditions_4.1.2.iso 其它版本号可依次判断..

  9. jquery下php与ajax的互传数据(json格式)自我总结

    研究了一整天的json数据与ajax的数据传输,现在进行一个小的自我总结,仅供参考 1.关于ajax的认识 $.ajax(),是jquery下包装好的一个函数:参考地址:http://www.w3sc ...

  10. The mell hall——坑爹

    The mell hall 题目描述 In HUST,there are always manystudents go to the mell hall at the same time as soo ...