其实没有太难
但是不知道的话想不到
考场上大概有50分吧
#include <iostream> #include <stdio.h> #include <queue> using namespace std; + ] = { , , , , , , }; + ]; + ][ + ]; int i , j , k; + ]; ][ + ]; queue < int > q; int num; bool check( int x ) { ; ; power[] = ; ; i <= n ; i++ ) power[i] = power[i - ] * x % mod[k]; ; i <= n ; i++ ) { ] != '-' ) ans += ver[k][i] * power[i]; else ans -= ver[k][i] * power[i]; ans %= mod[k]; } ) ans += mod[k]; return !( ans % mod[k] ); } int main() { scanf( "%d %d" , &n , &m ); ; i <= n ; i++ ) scanf( "%s" , a[i] ); ; k < ; k++ ) ; i <= n ; i++ ) ; a[i][j] ; j++ ) { if( a[i][j] == '-' ) continue; ver[k][i] *= ; ver[k][i] += a[i][j] - '; ver[k][i] %= mod[k]; } ; k < ; k++ ) ; i < mod[k] && i <= m ; i++ ) if( check( i ) ) for( j = i ; j <= m ; j += mod[k] ) ans[j]++; ; i <= m ; i++ ) ) { num++; q.push( i ); } printf( "%d\n" , num ); while( !q.empty() ) printf( "%d\n" , q.front() ) , q.pop(); ; }