网站建设中html5模板,濮阳做网站建设的公司,小程序页面设计图片,开发公司出售没有规划内房屋魔法阵 题目描述 六十年一次的魔法战争就要开始了#xff0c;大魔法师准备从附近的魔法场中汲取魔法能量。 大魔法师有m个魔法物品#xff0c;编号分别为1,2,…,m。每个物品具有一个魔法值#xff0c;我们用Xi表示编号为i的物品的魔法值。每个魔法值Xi是不超过n的正整数大魔法师准备从附近的魔法场中汲取魔法能量。 大魔法师有m个魔法物品编号分别为1,2,…,m。每个物品具有一个魔法值我们用Xi表示编号为i的物品的魔法值。每个魔法值Xi是不超过n的正整数可能有多个物品的魔法值相同。 大魔法师认为当且仅当四个编号为a,b,c,d的魔法物品满足xa xb xc xdXb-Xa2(Xd-Xc)并且xb-xa(xc-xb)/3时这四个魔法物品形成了一个魔法阵他称这四个魔法物品分别为这个魔法阵的A物品B物品C物品D物品。 现在大魔法师想要知道对于每个魔法物品作为某个魔法阵的A物品出现的次数作为B物品的次数作为C物品的次数和作为D物品的次数。 输入格式 第一行包含两个空格隔开的正整数n和m。 接下来m行每行一个正整数第i1行的正整数表示Xi即编号为i的物品的魔法值。 输出格式 共输出m行每行四个整数。第i行的四个整数依次表示编号为i的物品作 为A,B,C,D物品分别出现的次数。 样例 输入数据 1 308
1
24
7
28
5
29
26
24Copy 输出数据 1 4 0 0 0
0 0 1 0
0 2 0 0
0 0 1 1
1 3 0 0
0 0 0 2
0 0 2 2
0 0 1 0Copy 提示
NOIP2016普及组第四题
#include cstdio
#include algorithm
using namespace std;
inline int read(){int x0,f1;char cgetchar();while(c0||c9){if(c-)f-f;cgetchar();}while(c0c9){x(x1)(x3)c-0;cgetchar();}return x*f;
}
#define N 50010
int n,m;
int a[N],b[N],c[N],d[N];
int x[N],vis[N];
int main(){nread();mread();for(int i1;im;i)x[i]read(),vis[x[i]];for(int t1;t*9n;t){int sum0;for(int D9*t2;Dn;D){int AD-9*t-1;int BA2*t;int CD-t;sumvis[A]*vis[B];c[C]vis[D]*sum;d[D]vis[C]*sum;}sum0;for(int An-9*t-1;A;A--){int BA2*t;int CB6*t1;int DA9*t1;sumvis[C]*vis[D];a[A]vis[B]*sum;b[B]vis[A]*sum;}}for(int i1;im;i){printf(%d %d %d %d\n,a[x[i]],b[x[i]],c[x[i]],d[x[i]]);}return 0;
}
///test