Codeforces_959D_Mahmoud and Ehab and another array construction task(数学+贪心)

原创 2018年04月16日 20:03:14

传送门

题意:给你一个序列A,让你求一个序列B,满足以下情况:
1.B的字典序比A大
2.Bi>=2
3.B中的没两个数都两两互质。

思路:先预处理质因数。B中满足两两互质等价于B中没有相同的质因数。所以对于每个数看,他的质因数有没有在之前出现过,出现过就找 下一个,如果找到的数和起始的不一样的话,之后的数只需要从最小的质数开始就行。

#include<bits/stdc++.h>
#define debug(a) cout << #a << " " << a << endl
#define LL long long
#define ull unsigned long long
#define PI acos(-1.0)
#define eps 1e-6
const int N=2e6+7;
using namespace std;
bool vis[N];
vector<int> stk[N];
void init()
{
    for(int i=2;i<N;i++){
        if(!vis[i]){
            for(int j=i;j<N;j+=i) vis[j]=1,stk[j].push_back(i);
        }
    }
    memset(vis,0,sizeof(vis));
}
int solve(int x)
{
    for(auto &i:stk[x])
        if(vis[i]) return 0;
    for(auto &i:stk[x])
        vis[i]=1;
    return 1;
}
int main ()
{
    //yyy_3y
    //freopen("1.in","r",stdin);
    int n;scanf("%d",&n);
    init();
    int flag=1;
    int q=2;
    for(int i=1;i<=n;i++){
        int x; scanf("%d",&x);
        int tmp=x;
        if(flag){
            while(!solve(tmp))tmp++;
            if(tmp!=x) flag=0;
            printf("%d ",tmp);
        }else{
            while(!solve(q)) q++;
            printf("%d ",q);
        }
    }
    return 0;
}
版权声明: https://blog.csdn.net/yyy_3y/article/details/79965564

洛谷P4016

题目标签写着网络流诶….那么问题就是如何建图了…看到题解里一波大神用平均值来计算…但是蒟蒻没想到诶…所有我就比较暴力了…. 对于每个点一拆为二(ia,ib),建立超源超汇,然后对于每个点,从源点s向...
  • HumveeA6
  • HumveeA6
  • 2018-04-06 11:28:09
  • 29

CF473 DIV2 D. Mahmoud and Ehab and another array construction task

本题基于一种贪心的思路,即:能不改就不改,但是一旦改了以后,后面的都改;具体而言,就是从前往后扫,如果当前位置的数不与前面的数冲突的话,那么我们就不改动他。但是,一旦有一个数冲突了,根据题意我们肯定要...
  • HumveeA6
  • HumveeA6
  • 2018-04-04 16:36:19
  • 27

洛谷P2761

题目标签写着网络流,但是好像跟网络流啥关系也没有哇qwq…. 关键要看出补丁可抽象为边,错误的各种情况是点,而且错误种类很少,所以可以用二进制状态压缩… 然后关键点就是位运算了.......
  • HumveeA6
  • HumveeA6
  • 2018-04-06 10:40:54
  • 15

Codeforces 959F Mahmoud and Ehab and yet another xor task 线性基

题意 给出一个长度为n的数组A和q个询问,每次询问给出两个数l和x,问有多少种方案从前l个元素中取若干个出来使得其异或和恰好为x。取模。 n,q≤105,Ai&amp;lt;220n,q≤105,...
  • qq_33229466
  • qq_33229466
  • 2018-04-07 09:14:25
  • 69

Codeforce 862B Mahmoud and Ehab and the bipartiteness (二分图染色 + 链式前向星)

Mahmoud and Ehab continue their adventures! As everybody in the evil land knows, Dr. Evil likes bipa...
  • lj130lj
  • lj130lj
  • 2017-11-25 01:15:04
  • 49

D. Mahmoud and Ehab and another array construction task(因子标记)

D. Mahmoud and Ehab and another array construction tasktime limit per test3 secondsmemory limit per ...
  • SunMoonVocano
  • SunMoonVocano
  • 2018-04-09 17:43:39
  • 6

Codeforces Round #473 (Div. 2) D. Mahmoud and Ehab and another array construction task

题目链接:http://codeforces.com/contest/959/problem/D 题意:给你一个数组,要你找出比它字典序大的互质数组 算法:素数筛 思路:通过素数筛,可以将2~MAX...
  • qq_37352710
  • qq_37352710
  • 2018-04-08 15:33:22
  • 5

cf Mahmoud and Ehab and another array construction task(素数处理大乱炖)

给出一段数,让你给出一个字典序大于他的最小数列.这种最小的大于..不是特别的东西. 每一个数放进来,素因数分解,如果和之前数没有重合,那么把他的新素因数都过一遍. 如果有了重合,那么就不行了. ...
  • m0_37802215
  • m0_37802215
  • 2018-04-09 23:38:02
  • 12

Divide by Zero 2018 and Codeforces Round #474 (Div. 1 + Div. 2, combined) C. Subsequence Counting

题目链接:http://codeforces.com/contest/960/problem/C 题意:给你两个整数X,d, 找出一个数组满足以下条件: 除去Maximum_element_of_...
  • qq_37352710
  • qq_37352710
  • 2018-04-10 18:17:56
  • 29

Codeforces - 862C Mahmoud and Ehab and the xor

C. Mahmoud and Ehab and the xor Mahmoud and Ehab are on the third stage of their adventures...
  • lzc504603913
  • lzc504603913
  • 2017-09-20 15:55:20
  • 654
收藏助手
不良信息举报
您举报文章:Codeforces_959D_Mahmoud and Ehab and another array construction task(数学+贪心)
举报原因:
原因补充:

(最多只允许输入30个字)