codeforce

2015-01-24 05:48:10 · 作者: · 浏览: 3

暑假没过,今天打了下表发现了规律 ,然后就A

\
\
求Q,可以看出先让Q=(fZ??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vciAgaT0xLT5uo6mjqGkgbW9kIDGjqV4uLi4oaSBtb2Qgbik7CjxwPjwvcD4KPHA+yLu682ZvciDSu7HfsNFRXj1QaSA8L3A+CjxwPsi7uvPO0rDRx7DD5rXEtPKx7bP2wLS3os/WvrnIu9PQuebCyTwvcD4KPHA+PHByZSBjbGFzcz0="brush:java;">#include #include #include using namespace std; int main(){ int n; int a[100][100]; scanf("%d",&n); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ a[i][j]=i%j; } } for(int i=1;i 发现从第三列每次都有循环节,第零列是0(0)第一列是1(0),第二列是2(1 0),第三列是3(1 2 0)。。。。。

就可按照循环节算出前面的(for i=1->n)(i mod 1)^...(i mod n);,因为他就是这个矩阵

。。balabala。。。

代码如下

#include 
      
       
#include 
       
         #include 
        
          using namespace std; typedef long long ll; #define N 1100000 ll ans; int n; ll a[N]; ll mod[N]; int num[N]; void init(){ mod[0]=0; for(int i=1;i