zoukankan      html  css  js  c++  java
  • Topcoder srm 632 div2

    脑洞太大,简单东西就是想复杂,活该一直DIV2;

    A:水,基本判断A[I]<=A[I-1],ANS++;

    B:不知道别人怎么做的,我的是100*N*N;没办法想的太多了,忘记是连续的数列

    我们枚举公差,找到能有多少就可以了。

    C:想到MAP,但是前面太脑掺,只有几分钟写。。

    不过还真不一定写的出来。。

    进来DP感觉良好。。

    我们可以发现其实这些的乘积其实比较少。。

    然后就像普通数组进行加法一样。

     1 #include <cstdlib>
     2 #include <cctype>
     3 #include <cstring>
     4 #include <cstdio>
     5 #include <cmath>
     6 #include <algorithm>
     7 #include <vector>
     8 #include <string>
     9 #include <iostream>
    10 #include <sstream>
    11 #include <map>
    12 #include <set>
    13 #include <queue>
    14 #include <stack>
    15 #include <fstream>
    16 #include <numeric>
    17 #include <iomanip>
    18 #include <bitset>
    19 #include <list>
    20 #include <stdexcept>
    21 #include <functional>
    22 #include <utility>
    23 #include <ctime>
    24 using namespace std;
    25 
    26 #define PB push_back
    27 #define MP make_pair
    28 
    29 #define REP(i,n) for(i=0;i<(n);++i)
    30 #define FOR(i,l,h) for(i=(l);i<=(h);++i)
    31 #define FORD(i,h,l) for(i=(h);i>=(l);--i)
    32 
    33 typedef vector<int> VI;
    34 typedef vector<string> VS;
    35 typedef vector<double> VD;
    36 typedef long long ll;
    37 typedef pair<int,int> PII;
    38 #define mod  1000000007
    39 
    40 
    41 map<ll,ll> a[111];
    42 class GoodSubset
    43 {
    44         public:
    45         int numberOfSubsets(int goodValue, vector <int> d)
    46         {
    47                int  n=d.size();
    48                ll ret=0;
    49                for (int i=0;i<n;i++)
    50                {
    51                    for (int j=0;j<i;j++)
    52                    {
    53                        for (map<ll,ll>::iterator it=a[j].begin();it!=a[j].end();it++)
    54                        {
    55                            ll now=it->first;
    56                            int h=it->second;
    57                            if (goodValue%now==0)
    58                            {
    59                                a[i][now*d[i]]+=h;
    60                                a[i][now*d[i]]%=mod;
    61                            }
    62                        }
    63                    }
    64                    a[i][d[i]]++;
    65                    a[i][d[i]]%=mod;
    66                    ret+=a[i][goodValue];
    67                    ret%=mod;
    68                }
    69                return ret;
    70         }
    71 };
    72 
    73 int main() //模拟数据自测用
    74 {
    75     int n,m;
    76     cin>>n>>m;
    77     vector<int> p;
    78     for (int i=0;i<m;i++)
    79     {
    80         int x;
    81         cin>>x;
    82         p.push_back(x);
    83     }
    84     GoodSubset x;
    85     cout<<x.numberOfSubsets(n,p);
    86     return 0;
    87 }
    88 
    89 
    90 //代码还是很好看懂的
    91 // Powered by FileEdit
    92 // Powered by TZTester 1.01 [25-Feb-2003]
    93 // Powered by CodeProcessor
  • 相关阅读:
    text
    20165205 实验一 java开发环境的熟悉 实验报告
    20165205 2017-2018-2 《Java程序设计》第五周学习总结
    20165205 2017-2018-2 《Java程序设计》 第三周学习总结
    20165205 2017-2018-2 《Java程序设计》 第二周学习总结
    20165235 实验三 敏捷开发与XP实践
    20165235 结对编程项目-四则运算 整体总结
    20165235 祁瑛 2018-4 《Java程序设计》第八周学习总结
    20165235 第八周课下补做
    20165235 实验二Java面向对象程序设计
  • 原文地址:https://www.cnblogs.com/forgot93/p/3958951.html
Copyright © 2011-2022 走看看