原题传送门 好吧,如果说D1T1是纯模拟大水题 D2T1就是纯模拟略水题. 这道题首先我们要看一看数据范围.. 0<=n,m<=128 送分也不带这么送的吧.. 二维前缀和,前缀和,二次循环,4次循环,随你怎么乱搞都能过.. 没有任何需要提醒的东西.. 水~ 下面贴代码 #include<iostream> #include<cstdio> using namespace std; ][]; ,sum,x,y,ans2=,d,n,lx,ly,rx,ry; int mai…
原题传送门 这是道SB模拟题,NOIP--难度 直接贴代码 #include<iostream> #include<cstdio> using namespace std; ,zong,heng; ][]; int main(){ scanf("%d",&n); heng=n/+; zong=; while(num<=n*n){ f[heng][zong]=num; ][zong-]||((heng+>n)&&(zong-==…
题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. 之后,按如下方式从小到大依次填写每个数K(K=2,3,-,N*N): 1.若(K−1)在第一行但不在最后一列,则将K填在最后一行,(K−1)所在列的右一列: 2.若(K−1)在最后一列但不在第一行,则将K填在第一列,(K−1)所在行的上一行: 3.若(K−1)在第一行最后一列,则将K填在(K−1)…
果然我还是最菜的==不接受反驳== Day1 T1:神奇的幻方 思路:直接模拟即可,由于当前放法只与上一放法有关系,用两个变量记录一下即可.10分钟内切掉== 预计得分:100分 实际得分:100分 #include<cstdio> #include<algorithm> using namespace std; int n,lx,ly; ][],a[][]; int main() { freopen("magic.in","r",stdin…
神奇的幻方 题目描述 幻方是一种很神奇的N∗ N矩阵:它由数字 1,2,3, … … , N ∗ N 构成,且每行.每列及两条对角线上的数字之和都相同. 当 N为奇数时,我们可以通过以下方法构建一个幻方: 首先将 1 写在第一行的中间. 之后,按如下方式从小到大依次填写每个数 K(K = 2,3, … , N ∗ N) : 1. 若 (K − 1) 在第一行但不在最后一列,则将 K填在最后一行, (K− 1) 所在列的右一列: 2. 若 (K − 1) 在最后一列但不在第一行,则将 K填在第一列…
神奇的幻方 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.luogu.org/problem/show?pid=2615 Description 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. 之后,按如下方式从小到大依次填写每个数K(K=2,3,…,N*N): 1.若(K−1)在第一行但…
原题传送门 这是道很奇怪的题目,真不知道为什么要放到T2. 也许是T1太水了 首先先看题, 题目要求一个数列中下标为偶数的点比临近的下表为奇数的点更大或更小 其实就是说在原数组中找到一个最长的波动数列,就是小大小大小大...或者大小大小大小 网络上的题解都写的奇奇怪怪,有的用递归,有的用贪心.. 其实没有那么麻烦. 我们假设从第一个数之后开始所有的点都是拐点. 然后就设一个BOOL 如果bool=1那么就判断a[i]>a[i-1]如果满足ans++;bool=0; 如果bool=0那么就判断a[…
洛谷P2615 很简单的模拟题……每枚举一个点只要保存上一个点的x,y值即可,不用开数组存放 另外题目中对于K的操作都在K-1的九宫格范围内,所以我们巧妙运用++和--就可以做到每个分支一行代码 还有一点,题目中第4点说“若(K-1)既不在第一行也不在最后一列”,这个条件不必判断,因为从1~n^n每个数一定都在幻方中出现过一次,每个K一定会放到幻方中,所以第4点的条件一定会满足(虽然我不会证) 代码如下: #include<cstdio> using namespace std; #defin…
先给题目链接:神奇的幻方 太水了这题,直接模拟就行,直接贴代码. #include<bits/stdc++.h> using namespace std; int main(){ int n; scanf("%d",&n); int num[n][n]; memset(num,0,sizeof(num)); num[0][n/2]=1; int x=0,y=n/2; for(int i=2;i<=n*n;i++){ if(x==0&&y!=n-…
P2615 神奇的幻方 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. 之后,按如下方式从小到大依次填写每个数K(K=2,3,…,N*N): 1.若(K−1)在第一行但不在最后一列,则将K填在最后一行,(K−1)所在列的右一列: 2.若(K−1)在最后一列但不在第一行,则将K填在第一列,(K−1)所在行的上一行: 3.若(K−1)在第一行最后一…