自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 NTT笔记和多项式全家桶

NTT和多项式全家桶模板

2022-11-21 22:26:51 1036

原创 Codeforces Round #749 (Div.1+Div.2)A-D题解

A. Windblume Ode题意:就是从n个数里面挑p(要求最大)个数的和为合数,输出所挑选的数的下标,顺序随便思路:p的可能值只有n or n-1,如果所有加起来的和为合数,输出n,否则,在奇数中挑一个数减去,使得和为合数,证明:假设偶数有a个,奇数有b个,a个偶数相加肯定为合数,(1)如果b是偶数,则奇数可以两两配对,所以最后的和为偶数,肯定为合数(2)如果b为奇数,那么最后的和可能为合数,可能不是,如果不是,和肯定为奇数,所以需要减去一个奇数,使得和为合数代码#include<

2021-10-19 20:48:49 268

原创 AcWing打卡day6

1.最大的和思路:利用前缀和把二维数组的一行看成一个整体,然后数组就降到了一维,利用一位数组求连续区间最大值,求就可以了代码#include<bits/stdc++.h>using namespace std;int pre[110][110];int a[110][110];int main(){ int n; cin>>n; for(int i=1;i<=n;i++) { for(int j=1;j<=n

2021-10-17 16:49:42 203

原创 AcWing打卡day5

1.最高的牛题意:已知最高的牛是第几头,多高,如果两头牛之间的牛都比这两头牛矮,则这两头牛可以相互看见,给你一些两头牛想换看见的关系,求每头牛最大可能身高思路:差分,如果a,b牛能相互看见,则[a+1,b-1]区间所有牛身高至少减1,要去重代码#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<ll,ll> pll;const ll maxn=10010;ll cf

2021-10-12 22:09:42 185

原创 ccpc网络赛重赛题解

1.Primality Test题意:f(x)代表大于x的第一个质数,求g(x)=[(f(x)+f(f(x)))/2],就是求大于x的下一个质数和下下一个质数加起来除2,问g(x)是否为质数思路:枚举了几个x,发现除了当x=1,g(x)为质数,否则当x>1时,g(x)为偶数,不可能为质数核心代码if(x==1){ cout<<"YES"<<endl;}else { cout<<"NO"<<endl;}2.Kanade Doesn

2021-10-11 22:39:35 335

原创 Acwing打卡day4

1.分形之城题意:不同等级的城市有不同的城市分布,问在n等级的城市A,B之间的距离,每个街区边长10米思路:刚开始看题目看了很久,后来枚举每个等级城市1的坐标才发现一点规律,等级一的城市区块变化一下可以变成等级二的城市区块,递归求解就行了还要用到一些数学知识(1)如果(x,y)逆时针旋转90度,变成(y,-x)(2)如果(x,y)顺时针旋转90度,变成(-y,x)等级n-1城市区块变化到等级城市区块(1)左上角,需要上一级顺时针90+y轴对称+左移+上移{-y-len,-x+len}(2)

2021-10-11 19:33:27 274

原创 AcWing打卡day3

1.激光炸弹题意:给一个R×R的炸弹,和n个宝藏的坐标和价值,求可以炸掉的最大价值思路:建立一个二维数组的前缀和,s[i][j]代表者所以s[i][j]=s[i][j]+s[i-1][j]+s[i][j-1]-s[i-1][j-1];对于半径为r的正方形的价值为,s[i][j]-s[i-r][j]-s[i][j-r]+s[i-r][j-r];核心代码`for(int i=1;i<=5001;i++) { for(int j=1;j<=5001;j++)

2021-10-07 21:15:28 186

原创 Acwing打卡day2

第一题题意:模拟n的全排列,规定了排列数,且字典序从小到大输出思路:暴力dfs核心代码void dfs(int cnt){ if(cnt==n) { for(int i=0;i<n;i++) { cout<<load[i]<<" "; } cout<<endl; return ; } for(int i=1;i<=.

2021-10-07 10:31:43 155

原创 AcWing打卡

第一题题意:给你三个数a,b,p,让你求出a的b次方mod p思路:快速幂模板题,直接用快速幂将a^b求出来,再求的过程中每一步要mod p核心代码typedet long long int ll;ll fastPower(ll a,ll b,ll p){ ll ans=1; while(b) { if(b&1)ans=(ans*a)%p; a=(a*a)%p; b=b/2; } return ans;}第二题题意:给你三个数a,b,p,让你求出a乘b次方.

2021-10-06 21:41:52 398

原创 2021-9-15力扣题解

解题思路直接模拟,把比较长的链表当作答案链表,注意最后一位的进位,要新建节点代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(

2021-09-15 21:21:48 85

原创 2021-9-14力扣题解

解题思路快慢指针,快指针先走n-1步,然后快慢指针一起走直到快指针下一个节点的下一个节点为NULL,然后慢指针指向的节点就是需要删除的节点的前驱节点如果要删除头节点需要特判一下,因为头节点没有前驱节点代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} *

2021-09-14 19:36:35 75

原创 2021-09-13力扣题解

解题思路先用数组将指针存起来利用头尾两个指针向中间遍历,按题目要求连接起来如果链表节点为奇数,最后特判一下,在末尾加上最中间的节点代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next

2021-09-13 21:08:27 103

原创 P1048 [NOIP2005 普及组] 采药

题目链接:https://www.luogu.com.cn/problem/P1048辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,你能完成这个任务吗?解析题目是

2021-05-08 23:13:39 129

原创 P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles

题目链接:https://www.luogu.com.cn/problem/P1216 这是一道入门的dp题目,题目意思是,给你已给数字三角形,让你求出这个三角形从上到下路过节点之和的最大值。 我们定义一个二维数组a[i][j],a[i][j]代表从上往下遍历到第i层第j个节点的路径之和的最大值。 转态转移方程f[i][j]=max(f[i-1][j],f[i-1][j-1]) 代码实现#include<stdio.h>int a[1005][1005]={0};int f[..

2021-05-08 22:56:43 341

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除