新乡网站seo,做网站怎么配电脑,乐清比较好的设计公司,企业网站建设的方法目录
数列分割
小码哥的地毯
小码哥的三色墙
palace
高数考试
新全排列
黑白双煞
等差
数三角形
区间修改
相对马高
小码哥剪绳子 数列分割 难度:黄金 时间限制:1秒巴 占用内存:64 M 小码哥给你一个长度为n的数列#xff0c;求将该数列分割成两个左右两个部分且两…目录
数列分割
小码哥的地毯
小码哥的三色墙
palace
高数考试
新全排列
黑白双煞
等差
数三角形
区间修改
相对马高
小码哥剪绳子 数列分割 难度:黄金 时间限制:1秒巴 占用内存:64 M 小码哥给你一个长度为n的数列求将该数列分割成两个左右两个部分且两个部分内数字的和相等的方案数。 格式 输入格式:给定一整数n; 接下来有 n 个数 a[i]。 其中:1≤n≤ 105,ai]的绝对值不大于 10000。 输出格式:输出一行表示答案。
//
// Created by abner on 2024/3/22.
//
#include bits/stdc.h
using namespace std;
const int N 1e5 10;
long long n,a[N],sum [N],ans;int main() {cin n;for (int i 1; i n; i) {cin a[i];sum[i] sum[i - 1] a[i];}for (int i 2; i n; i) {if (sum[n] - sum[i - 1] sum[i - 1])ans;}cout ans;return 0;
} 小码哥的地毯 少 难度:黄金·时间限制:1秒四占用内存:128M 小码哥的房间要铺上地毯。房间大小为几*几小码哥有m 块矩形地毯给出每块地毯放置的两个对角的坐标。问每个点被多少个地毯覆盖 格式 输入格式:今第一行两个整数nm;接下来 m 行每行两个坐标(1,y)和(2,y) 代表一块地毯左上角是(1,y)右下角是(2,y2)。 输出格式:输出n行每行几个整数;
//
// Created by abner on 2024/3/22.
//
#include bits/stdc.h
using namespace std;
#define N 1005
int n,m;
int a[N][N],sub[N][N];
int main(){cin n m;for(int i1;im;i){int x1,y1,x2,y2;cin x1 y1 x2 y2;sub[x1][y1] 1;sub[x1][y21] - 1;sub[x21][y1] - 1;sub[x21][y21] 1;
}
for (int i1;in;i){
for (int j1;j n;j){
a[i][j]sub[i][j]a[i-1][j]a[i][j-1]-a[i-1][j-1];cout a[i][j] ;
}
puts();
}
return 0;
}小码哥的三色墙 难度:黄金时间限制:1秒巴 占用内存:128 M 小码哥的房间墙要重新刷漆。墙面大小可以看成几*m个小方块每个方块初始颜色为W,B或R小码哥对于刷漆的要求是: 1.从最上方若干行(至少一行)的格子全部是W色的; 2.接下来若干行(至少一行)的格子全部是B色的; 3.剩下的行(至少一行)全部是 色的。 小码哥想要更改最少的格子数来满足要求。请你帮他算算最少的更改数。
//
// Created by abner on 2024/3/22.
//
#include bits/stdc.h
using namespace std;
#define N 1005
int n,m,w[N],b[N],r[N];
int ans 0x3f3f3f3f;
string s;
int cal(char c) {
//某一行全部刷成某种颜色的代价int t 0;for (int i 0; i m; i)if (s[i] ! c)t;return t;
}
int main() {cin n m;for (int i 1; i n; i) {cin s;w[i] w[i - 1] cal(W);b[i] b[i - 1] cal(B);r[i] r[i - 1] cal(R);}for (int i 1; i n - 1; i)for (int j i 1; j n; j)ans min(ans, w[i] b[j] - b[i] r[n] - r[j]);cout ans;return 0;
} palace 难度:钻石时间限制:1秒巴 占用内存:128 M。 小码哥准备给自己盖一座很华丽的宫殿。于是他看中了一块NxM 的矩形空地。 空地中每个格子都有自己的海拔高度。小码哥想让他的宫殿的平均海拔在海平面之上(假设海平面的高度是0平均数都会算吧?)。而且小码哥希望他的宫殿尽量大能够容纳更多的人来膜拜他。请问小码哥的宫殿最后会有多大? 格式 输入格式:第一行两个整数 n,m; 之后 n 行每行 m 个数描述的空地的海拔。
//
// Created by abner on 2024/3/22.
//
#include bits/stdc.h
using namespace std;
const int N 210;
int n,m,a[N][N],sum [N][N],ans;int main(){cin n m;for (int i1;i n;i)for (int j 1;j m;j) {cin a[i][j];sum[i][j] sum[i - 1][j] sum[i][j - 1] a[i][j] - sum[i - 1][j - 1];}for (int i1;in;i)for (int j 1;j m;j)for (int ki;k n;k)for (int lj;l m;l) {int tmp (k - i 1) * (l - j 1);int tmp2 sum[k][l] - sum[i - 1][l] - sum[k][j - 1] sum[i - 1][j - 1];if (tmp ans tmp2 0)ans tmp;}cout ans;return 0;
}高数考试 黄金!巴 占用内存:128 M子难度:时间限制:1秒 高数考完了又到了数学老师难办的时候。数学老师想捞同学一把她总是要一遍遍地给某些同学增加分数(均为正整数)又要注意最低分是多少。由于工作量很大你能帮帮她吗? 格式 输入格式:第一行有两个整数np代表学生数与增加分数的次数第二行有 n 个数a1~ an 代表各个学生的初始成绩;接下来p行每行有三个数 yz代表给第 个到第y个学生每人增加z分。
/*MT2068 高数考试
*/#includebits/stdc.h
using namespace std;const int MAX 5e65;
int ary[MAX], sub[MAX];int main( )
{// 录入数据 int n,p,x,y,z,minScoreMAX; cinnp; // 录入分数时同时记录差分数组 for(int i1;in;i){cinary[i];sub[i] ary[i] - ary[i-1];}// 录入操作时只需要对差分数组进行修改 while(p--){cinxyz;sub[x] z;sub[y1] -z;}// 还原数组并找出最小值 for(int i1;in;i){ary[i] ary[i-1] sub[i];minScore min(minScore, ary[i]);}// 输出最低分数 coutminScoreendl;return 0;
}新全排列 时间限制:2秒难度:钻石四:占用内存:256 M 列数组 P1,P2,?3,..,?n 被称作一个全排列当且仅当1到n所有数都出现一次。现有一个n的全排列 p1,p2,p3,·..,pn 仅知道 q1,q2,3,·..,qn-1的序列其中 qipi1-Pi。 要求求出原序列。 格式 输入格式:第一行输入 n(2 n2*105)原序列长度;第二行输入 q1, 92, q3,·..,qn-1(-n qi n)。
//
// Created by abner on 2024/3/22.
//
#include bits/stdc.h
using namespace std;
const int N 2e5 7;int n,p[N],q[N],tmp[N];
bool flag;
int main() {cin n;for (int i 1; i n - 1; i)cin q[i];//差分数组前缀和就是原数组int minn 0;for (int i2;in;i){p[i]p[i-1]q[i-1];if (p[i] minn)minn p[i];
}
for (int i1;in;i) {p[i] p[i] - minn 1;tmp[i] p[i];if (tmp[i] n || tmp[i] 1) {cout -1;return 0;}
}
sort(tmp 1,tmp n 1);
for (int i1;in-1;i)
if (tmp[i]tmp[i 1]){cout-1;return 0;
}for (int i1;in;i)cout p[i] ;return 0;
} 黑白双煞
难度:钻石时间限制:1秒巴:占用内存:128 M 小码哥现在手里一个环(首尾相连)环上有(2n100000)个点每个点必定是两种颜色之一(黑色或白色)。 现在他想请你进行一些操作每次交换两个点的位置求最少操作次数使得黑白色的几个点分离成两个部分每个部分只含一种颜色。 格式 输入格式:第-行-个正整数n(2≤n≤ 100000); 接下来一行一个字符串 S 长度为 n 第讠位为 H 则表示黑点T 则表示白点。
//
// Created by abner on 2024/3/22.
//
#include bits/stdc.h
using namespace std;
const int N1e5 10;
int a[N 1],sum[N 1];
int n,cnt,ans;//cnt表示黑色的个数ans表示cnt长的区间内最多多少个黑色
char ch;
int main(){cin n;for (int i1;in;i) {cin ch;if (ch H)//黑色为1a[i n] a[i] 1, cnt;}for (int i1;in * 2;i)sum[i]sum[i-1]a[i];//前缀和前面有多少个黑色for (int i1;i n;i)ans max(ans,sum[icnt - 1] - sum[i-1]);cout cnt - ans;return 0;} 等差 难度:钻石时间限制:1秒四: 占用内存:256 M 学完等差数列的小码哥神清气爽他想在一长串数中找到等差的部分。 他给你一个整数数组nums要求该数组中所有为等差数组的子数组个数(等差数组子数组指的是至少3个数的连续数组成等差数列)。 格式 输入格式:一个整数数组。 输出格式:返回一个非负整数。
//
// Created by abner on 2024/3/22.
//
#include bits/stdc.h
using namespace std;
const int N 5010;
int nums [N],sub[N],n,ans;int main(){int x;while (cin x){n;nums[n] x;sub[n] nums[n] - nums[n - 1];}for (int i2;in;i){int tmp sub[i],index i1,t0;while (sub [index]tmp) {t;index;}ans t;}cout ans;return 0;} 数三角形 时间限制:1秒难度:钻石巴: 占用内存:128 M 给出四个整数 A, B,C,D 其中 1 A≤BCD5.105 求三边长分别为 æ, y,z(㎡,y,z为整数)并且満足 A≤æ≤B≤y≤C≤z≤D 的非退化三角形(三顶点不共线)的个数。 格式 输入格式:第一行为 A,B,C,D 输出格式:输出一个整数为答案。
//
// Created by abner on 2024/3/22.
//
#include bits/stdc.h
using namespace std;
const int N5e5 5;
long long a[N],sum[N],A,B,C,D,ans;
int main(){cin A BCD;for (int iA;iB;i)for (int jB;jC;j)a[ij];for (int iAB;i BC;i)sum[i] sum[i -1] a[i];for(int iC;i min(D,BC);i)ans sum[B C] - sum[i];cout ans;return 0;
} 区间修改 难度:黄金 时间限制:1秒巴:占用内存:128 M 小码哥有几个手下,他们的编号为1,n。小码哥想要给他们发放工资用一个长度为n的数列ai,表示编号为i的手下初始收到的工资但发工资时没有计算好导致每个人到手的工资不-样为了使他们的工资相同现在小码哥可以使得编号在区间,中的手下收到1或上交1的工资。即工资1或工资-1; 求至少需要多少次操作才能使所有人的工资相同都一样? 工资可以暂时为负数小码哥可以压榨他的手下让手下暂时垫付部分钱之后再还;小码哥也可以多付一些钱给手下也可以少给一些(自己贪污一点)即工资总数不要求一定是初始手下的工资之和。只要他们每个人的工资一样就可以。
//
// Created by abner on 2024/3/22.
//
#include bits/stdc.h
using namespace std;
const int N 1e5 10;
int n,a[N],sub[N],num1,num2;
int main(){int ans 0,buf 0;cin n;for (int i1;in;i)cin a[i];for (int i2;in;i){sub[i] a[i]-a[i-1];if (sub[i] 0)num1 sub[i];else num2 sub[i];}cout max(num1,-num2);return 0;
} 相对马高 少难度:黄金时间限制:1秒四: 占用内存:128 M 小码哥有几头马他们站作一排由于马的身高不同如果马A和B能够相互看见那么在(a,b)区间的马的身高都小于 ab马。 现在给出最高的马的身高h。之后小码哥将给出f组数据表示马AB可以相互看见请你推出小码哥的马们的最大的可能的身高,由于小码哥工作向来随性马的区间顺序关系可能写错(数据不确保 ab)。 格式 输入格式:第 1 行输入 n,h,f; 第 2 行到第 f1 行 输入两个数据 a,b以空格分隔
//
// Created by abner on 2024/3/22.
//
#include bits/stdc.h
using namespace std;
const int N 1e4 10;
int n,h,f,g[N],sub[N],a,b;
int main() {cin n h f;sub[1] h;while (f--) {cin a b;if (a b)continue;if (a b)swap(a, b);sub[a 1] - 1;sub[b] 1;}for (int i 1; i n; i) {g[i] g[i - 1] sub[i];cout g[i] endl;}return 0;
} 小码哥剪绳子 时间限制:1秒巴 占用内存:128 M了 难度:黄金 马上就要到文化节了小码哥身为学生会的一员需要参与到道具制作。 由于被分配到趣味拔河小码哥需要切绳子有N 条绳子它们的长度分别为,n。 如果从它们中切割出 K 条长度相同的绳子这条绳子每条最长能有多长? 格式 输入格式:第一行两个整数 N 和K; 接下来 N 行每行一个整数代表每条绳子的长度 工。
//
// Created by abner on 2024/3/22.
//
#include bits/stdc.h
using namespace std;
const int M 1e5 10;
int L[M],N,K,l,r,mid,ans;bool check(int num){int tmp 0;for (int i 1;iN;i) {tmp L[i] / num;}if (tmp K)return true;elsereturn false;}int main(){cin NK;for (int i1;iN;i) {cin L[i];r max(r, L[i]);}while (l r){mid l(r-l)/2;if (check(mid))lmid 1,ans mid;elser mid - 1;}cout ans;return 0;}