Codeforces Round #641 (Div. 2)B. Orac and Models

题目

DP

错误代码:超时

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
 
using namespace std;
#define mod 1e9+7
#define N 100005
#define inf 0x3f3f3f3f
typedef long long ll;
ll a[N],dp[N];
ll Max(ll a,ll b)
{
    if(a>b)
        return a;
    return b;
}
int main()
{//ll a[N],dp[N];
   // freopen("E:\\in.txt","r",stdin);
    int k;
    cin>>k;
    while(k--)
    {
 
 
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)
            dp[i]=1;
        for(int i=1; i<=n; i++)
            cin>>a[i];
        for(int i=2; i<=n; i++)
        {
            for(int j=1; j<=i/2; j++)
            {
                if(i%j==0)
                {
                    if(a[j]

不该这么暴力的

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
 
using namespace std;
#define mod 1e9+7
#define N 100005
#define inf 0x3f3f3f3f
typedef long long ll;
ll a[N],dp[N];
ll Max(ll a,ll b)
{
    if(a>b)
        return a;
    return b;
}
int main()
{//ll a[N],dp[N];
    //freopen("E:\\in.txt","r",stdin);
    int k;
    cin>>k;
    while(k--)
    {
 
 
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)
            dp[i]=1;
        for(int i=1; i<=n; i++)
            cin>>a[i];
        for(int i=1; i<=n; i++)
        {
            for(int j=i*2; j<=n; j+=i)
            {
                
                
                    if(a[i]

你可能感兴趣的:(DP)