- 博客(20)
- 收藏
- 关注
原创 JavaWeb学习-Error
1.在pom.xml下添加如下代码,将jdk修改为你正在使用的jdk。点击Add Selected,Servlet包导入成功。检查标注处jdk(改成本地jdk或default)。检查标注处jdk是否与本地jdk相同。
2023-06-27 10:24:21
280
1
原创 c++ set的用法
1. 特性set即表示集合。set的特性是,所有元素都会根据元素的键值自动排序,并且set会自动去重,即set中不会出现相同元素。2.函数set的头文件为#include<set>。其具有以下函数:1.q.insert(x):将x插入q中2.q.erase(x):将x从q中删除,返回0或1,0表示x不存在3.q.clear(x):清空q4.q.empty():判断q是否为空5.q.size():返回q中的元素个数6.q.find(x):查找x,若不存在,则返回q,end()
2022-04-11 20:40:20
1057
原创 pta L1-009~L1-014题解
L1-009 N个数求和这道题其实用我们正常的数学思维求解即可:先将所有数加起来,再化成最简形式即可。通常,我们计算两个分数相加时,分子部分一般是两个分子分别乘以对方的分母再相加,而分母部分是两分母直接相乘;计算多个分数相加时,也是一样的,每一个分子乘上除自身外的所有分母,最后算总和,即是分子部分,分母部分则是所有分母直接相乘。这道题我们需要注意的点就是化成最简形式以及分离整数和小数部分。化成最简形式很简单,就是找到分子和分母的最大公因数,然后都除以最大公因数即可。分离时,我们可以知道,整数部分其实
2022-01-13 22:27:42
462
原创 Codeforces Round #754 (Div. 2) A、B、C题题解
A题目说a1+a3=2*a2,所以我们可以判断a1,a2,a3的和是否可以分成三等份,如果可以,说明答案为0,如果不可以,说明答案为1(因为我可以挑选两个数,一个慢慢加,一个慢慢减,所以无论如何我的答案都不会超过1)。#include<iostream>using namespace std;int main(){ int t; cin>>t; while(t--) { int a,b,c; cin>>a>>b>>c;
2021-11-16 19:49:51
881
原创 codeforces Technocup 2022 - Elimination Round 2 A、B、C题解
A简单构造即可。#include<iostream>using namespace std;typedef long long ll;int main(){ int t; cin>>t; while(t--) { ll u,v; cin>>u>>v; cout<<u*u<<" "<<-v*v<<endl; } return 0;}B因为题目要求的是要让相邻的格子颜色
2021-11-15 15:48:07
809
原创 Codeforces Round #753 (Div. 3) A、B、C、D题解
A题暴力代码如下:#include<iostream>#include<cstring>#include<cmath>using namespace std;int main(){ int T; cin>>T; while(T--) { char op; string a; int b[55]; int c=0; for(int i=0;i<26;i++) { cin>>op; b
2021-11-03 21:48:31
157
原创 Codeforces Round #748 (Div. 3) A、B题题解
A直接比较大小即可#include<iostream>#include<algorithm>using namespace std;int main(){ int T; cin>>T; while(T--) { int a,b,c,a1=0,b1=0,c1=0; cin>>a>>b>>c; int maxn; maxn=max(a,b); maxn=max(maxn,c); if(a<b
2021-10-15 21:33:36
137
原创 Codeforces Round #747 (Div. 2)
A构造,(-n-1)~ 0 与 0 ~ (n-1)和相抵为0A题代码#include<iostream>using namespace std;int main(){ int T; cin>>T; while(T--) { long long n; cin>>n; cout<<-(n-1)<<" "<<n<<endl; } } B二进制思想,以3举例,他的特殊数可以是1 3 4 9
2021-10-11 20:32:38
174
原创 Codeforces Round #744 (Div. 3) C. Ticks题解
原题链接模拟找到当前为 * 的点,判断它的两上角对角线上的点是否为 *,如果为 * 的数量大于等于d ,标记为真,最后再判断是否所有 * 都为真。代码#include<iostream>#include<cstring>using namespace std;char g[20][20];bool f[20][20];int n,m,k;void solve(int x,int y){ int d=0; for(int i=x-1,j=y-1,k=y+1;
2021-10-01 17:31:47
516
原创 Codeforces Round #744 (Div. 3) D. Productive Meeting 题解
原题链接用大根堆做就很简单用大根堆存每次取出最大的和第二个最大的,每次两个减一,然后入队.代码#include<iostream>#include<queue>using namespace std;const int N=2e5+10;typedef pair<int,int>PII;PII s[N];int main(){ int T; cin>>T; while(T--) { int n; cin>>n;
2021-10-01 16:14:26
195
原创 Codeforces Round #744 (Div. 3) B. Shifting Sort 题解
原题链接贪心这道题我们可以用一种贪心的思想,题目是要求我们将数组按照向左循环移动的方法使数组单调递增,那么我们可以先找到当前未排序的最大值,通过移动1个距离使最大值到其原本的位置,也就是移动该值至该值应该在的位置的那一段,拿{2,5,1,4,3}举例,我先找到未排序的最大值5,它原本的位置应该是在5,但它现在在2的位置,所以我只需要移动2至5,移动距离为1,我就可以将5放在正确的位置,此时数组变成了{2,1,4,3,5}然后再接着找未排序的最大值,也就是4,它在3,所以移动3至4,距离为1,数组变为{2
2021-09-29 20:07:00
292
原创 AcWing 第 18 场周赛
1.不同的数这道题暴力就可以了。#include<iostream>using namespace std;int a[155],c[150];bool b[150];int main(){ int n,k; cin>>n>>k; int l=0; int res=0; for(int i=0;i<n;i++) { cin>>a[i]; if(!b[a[i]])
2021-09-26 11:03:43
111
原创 洛谷 P2440 木材加工
题目描述木材厂有 n 根原木,现在想把这些木头切割成 k 段长度均为 l 的小段木头(木头有可能有剩余)。当然,我们希望得到的小段木头越长越好,请求出 l 的最大值。木头长度的单位是 cm,原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。例如有两根原木长度分别为 11 和 21,要求切割成等长的 6 段,很明显能切割出来的小段木头长度最长为 5。输入格式第一行是两个正整数 n,k,分别表示原木的数量,需要得到的小段的数量。接下来 n 行,每行一个正整数 Li ,表示一根原木的
2021-09-24 21:23:30
1247
原创 洛谷 P1102 A-B 数对 题解
贪心+双指针题目描述出题是一件痛苦的事情!相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈!好吧,题目是这样的:给出一串数以及一个数字 C,要求计算出所有 A - B = C 的数对的个数(不同位置的数字一样的数对算不同的数对)。输入格式输入共两行。第一行,两个整数 N, C。第二行,N 个整数,作为要求处理的那串数。输出格式一行,表示该串数中包含的满足 A - B = C的数对的个数.这题可以用巧妙地数学思想,我们可以发现两个数
2021-09-22 21:16:56
310
原创 Codeforces Round #743 (Div. 2) C. Book题解
拓扑序列+dp思想该题可以用邻接表存下每一个章节需要理解哪些章节,再利用dp思想找到答案#include<iostream>#include<vector>#include<queue>using namespace std;const int N=2e5+10;int d[N],f[N];//每个章节的需理解数、理解每章节需要的次数 vector<int> g[N];//存每个章节需要理解的各章节 int n;int main(){
2021-09-22 00:58:47
192
原创 Educational Codeforces Round 114 (Rated for Div. 2)题解
A. Regular Bracket Sequences找规律。#include<iostream>using namespace std;char a[150];bool b[150];int main(){ int t; cin>>t; while(t--) { int n; cin>>n; for(int i=1;i<=n;i++) { int j=i,k=i,l=n-i; while(j--)cout&l
2021-09-21 13:54:05
367
原创 Codeforces Round #743 B.Swaps
因为是要让a小于b,所以可以用双指针,在b数组中找到第一个大于a数组中第i个值的数,假定该数的位置为j,则他们的交换次数为i+j-2,但是由于a数组不是单调序列,所以每一次找b数组都要从头开始,这就会超时,所以可以先把a数组从小到大排列,这样就可以不用从头遍历b数组,因为j前面没有大于a[i]的数,就一定没有大于a[i+1]的数。#include<iostream>#include<algorithm>using namespace std;const int ...
2021-09-20 20:39:38
206
原创 洛谷 P2196 [NOIP1996 提高组] 挖地雷
思路:dfs.#include<iostream>using namespace std;int a[25],f[25];int w[25][25];//记录两地窖间是否连通 int b[25],p[25];//p和f数组用来记录路径 int cnt,maxn;int n;bool check(int x){ for(int i=1;i<=n;i++) { if(w[x][i]&&!b[i])return false; }...
2021-09-14 20:56:46
216
原创 洛谷 P1434 [SHOI2002]滑雪
Michael 喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael 想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9一个人可以从某个点滑向上下左右相邻四个点之一,当且仅
2021-09-14 19:24:58
195
原创 Codeforces Global Round 16 C. MAX-MEX Cut
/*模拟一个一个比较两串字符串,如果不同单独划分出来,MEX为2;如果相同则一直操作直到出现第一种情况: 判断第一个字符串后面一位字符和当前位是否相等,若相等,为0加1; 若不相等,则当前位和后一位一定可以组合取到2,但要注意后一位字符是否和另一个字符串的那位相 等。*在模拟的过程中需特判最后一位 */#include<iostream>#include<string>#include<cstdio>using ...
2021-09-13 14:16:35
290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅