Codeforces Round\#499(Div.2)E.Border(이산 수학)

1045 단어 【Codeforces】
링크:http://codeforces.com/contest/1011/problem/E
제목:n 가지 지 폐 를 드 리 고 k 를 드 리 겠 습 니 다.k 진 을 대표 합 니 다.n 가지 지폐의 임 의 조합 을 구 한 다음 에 mod k 는 0~m-1 의 숫자 를 구성 할 수 있 습 니까?
사고:이산 수학의 기본 지식,n 개의 지폐 와 m 의 최대 공약 수 는 최소 생 성 원 이 고 이 원 의 모든 배 수 는 m 보다 작은 수 는 생 성 할 수 있 는 수 이다.
#include
using namespace std;
const int maxn = 1e6+7;
#define ll long long
#define eps 1e-8
using namespace std;
inline int read()
{
    char ch = getchar(); int x = 0, f = 1;
    while(ch < '0' || ch > '9') {if(ch == '-') f = -1; ch = getchar();}
    while('0' <= ch && ch <= '9') {x = x * 10 + ch - '0'; ch = getchar();}
    return x * f;
}
int n, m, k, x;
int main()
{
    
    n = read(); m = read(); k = m;
    for(int i = 0; i < n; i++)
    {
        x = read();
        k = __gcd(k, x);
    }
    printf("%d
",m/k); for(int i = 0; i < m; i += k) printf("%d%c",i, i + k < m ? ' ':'
'); return 0; }

좋은 웹페이지 즐겨찾기