![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
acm,蓝桥杯等
勇敢nn
用心去打造每一份美好
展开
-
2022 China Collegiate Programming Contest (CCPC) Guilin Site M题
【代码】2022 China Collegiate Programming Contest (CCPC) Guilin Site M题。原创 2022-11-02 14:09:47 · 594 阅读 · 1 评论 -
第 46 届 ICPC 国际大学生程序设计竞赛亚洲区域赛(沈阳)F题
【代码】第 46 届 ICPC 国际大学生程序设计竞赛亚洲区域赛(沈阳)F题。原创 2022-10-31 11:31:35 · 377 阅读 · 0 评论 -
The 2022 ICPC Asia Regionals Online Contest (I) D题
定义一种合法的数字:其二进制数的末尾0的个数与所有1的个数相同。给定q组询问,每组询问给出一个区间[l,r],找出这个区间内是否存在这样合法的数字。做法离大谱(非正常思路,脑子有坑),本题主要是统计出1e9内的所有合法数字,不会数位dp的我只能另寻他法。原创 2022-09-23 16:40:04 · 343 阅读 · 0 评论 -
进制转换
法1:将输入的10进制转化成16进制,因为题目要求带字母的数不统计,所以此时的16进制数可以当成10进制数进行减法运算,还要注意一个问题:输入的数字16进制格式带字母怎么处理,左端点找第一个大于他不带字母的数,右端点找第一个小于他不带字母的数。法2:前缀和,先预处理,10的6次方个数,没有字母的数加一,有字母的不变,用前缀和数组来存...原创 2022-07-11 22:02:06 · 152 阅读 · 0 评论 -
“山大地纬杯”第十二届山东省ICPC大学生程序设计竞赛(补题)
A. Seventeen#include<iostream>using namespace std;int n;int main(){ cin>>n; if(n>=7) { printf("(1+2-3)*5"); for(int i=8;i<=n;i++) printf("*%d",i); printf("+4+6+7"); } else if(n==6) printf原创 2022-05-23 11:26:05 · 417 阅读 · 3 评论 -
蓝桥杯真题3
1. 统计子矩阵输入:3 4 101 2 3 45 6 7 89 10 11 12输出:19#include<iostream>//前缀和与双指针的完美结合!!!using namespace std;int n,m,k;int s[510][510];//存每一列上的前缀和long long cnt;int main(){ cin>>n>>m>>k; for(int i=1;i<=n;i++)原创 2022-05-03 20:39:51 · 285 阅读 · 0 评论 -
ICPC省赛
1. Mio visits ACGN Exhibition题意:输入一个二维01矩阵,求从左上角走到右下角满足如下条件的路径数:经过0的个数不小于p,经过1的个数不小于q输入:2 2 1 1 //n,m,p,q0 01 1输出:2输入:3 3 2 00 0 10 0 11 0 0输出:62. Dyson Box题意:有n个箱子,输入他们的坐标,这些箱子会受到两种力:向左和向下。因此他们会被推到最左边或最下边。每加入一个箱子,我们都要求当前所有箱子受到向左或者向下的力原创 2022-04-30 22:00:42 · 436 阅读 · 0 评论 -
C++ 几个比较特殊的函数
1.全排列函数#include<iostream>#include<algorithm>//#include<string>using namespace std;int main(){ int arr[3]={1,2,3},brr[3]={3,2,1}; string s="abc"; while(next_permutation(arr,arr+3))//顺序 printf("%d %d %d\n",arr[0],a原创 2022-04-17 17:29:43 · 730 阅读 · 0 评论 -
LRRLR
1.递归#include <iostream>#include <cmath>#include <queue>#include <cstring>using namespace std;const int N = 5e5+10;typedef pair<int,int>PII;char s[N];int n;void solve(int u){ if(u==n){ printf("%d ",u); ..原创 2022-04-10 10:58:16 · 1287 阅读 · 0 评论 -
蓝桥杯真题2
1.杨辉三角形2.k倍区间#include<iostream>using namespace std;int n,k;long long arr[100010];int cnt[100010];int main(){ cin>>n>>k; for(int i=1;i<=n;i++) { cin>>arr[i]; arr[i]+=arr[i-1]; } cnt[原创 2022-04-03 21:42:39 · 230 阅读 · 0 评论 -
蓝桥杯真题1
count=0for i in range(2001,2022): for j in range(1,13): if j==4 or j==6 or j==9 or j==11: n=31 elif j==2: n=29 else: n=32 for k in range(1,n): sum=0 for a in .原创 2021-06-24 09:39:56 · 2295 阅读 · 0 评论 -
PTA天梯赛、RoboCom练习
1.L2-003 月饼输入样例:3 2018 15 1075 72 45输出样例:94.50#include<iostream>#include<algorithm>using namespace std;struct moon{ float mount; float price; float pro;}moons[1010];bool cmp(moon a,moon b){ return a.pro>b.pro原创 2022-01-12 17:37:15 · 584 阅读 · 0 评论 -
acwing每日一题
1. 笨拙的手指奶牛贝茜正在学习如何在不同进制之间转换数字。但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔。每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的某一位数字写错。例如,如果她将数字 14 转换为二进制数,那么正确的结果应为 1110,但她可能会写下 0110 或 1111。贝茜不会额外添加或删除数字,但是可能会由于写错数字的原因,写下包含前导 0 的数字。给定贝茜将数字 N 转换为二进制数字以及三进制数字的结果,请确定 N 的正确初始值(十进制表示)。输入格式第一行包含原创 2022-01-10 12:18:03 · 602 阅读 · 0 评论 -
一些常见的输入格式
1.输入带空格的字符串#include<iostream>//#include<stack>using namespace std;int main(){ char arr[10]; scanf("%[^\n]",arr); printf("%s",arr); return 0;}原创 2021-10-02 22:34:53 · 323 阅读 · 0 评论 -
高精度算法
#include<stdio.h>int main(){ int n,i,j,up,tmp; int arr[10001]={0}; arr[0]=1; scanf("%d",&n); for(i=2;i<=n;i++) { for(up=0,j=0;j<10000;j++) { tmp=arr[j]*i+up; arr[j]=tmp%10;原创 2021-08-12 11:18:54 · 81 阅读 · 0 评论 -
双指针算法
1.最长连续不重复子序列题目描述:给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。测试样例;输入:51 2 2 3 5输出:3代码如下:#include<iostream>using namespace std;const int N=100010;int arr[N],s[N];//s数组存每个数字出现的次数int main(){ int n,maxA=0; scanf("%d",&n); f原创 2021-08-10 12:24:34 · 69 阅读 · 0 评论 -
区间问题
、、原创 2021-08-07 16:36:23 · 205 阅读 · 0 评论 -
位运算..
基本知识:1. 与 x&y 或 x|y 非 !x 异或 x^y2. 1<<n=2^n n>>x=n/2^x1.快速幂(a^b%p)//快速幂#include<iostream>using namespace std;int main(){ int a,b,p; cin>>a>>b>>p; int res=1%p; while(b) {原创 2021-08-01 12:41:41 · 71 阅读 · 0 评论 -
字符串的常用函数及字符串问题
#include<stdio.h>#include<string.h>int main(){ int visited[26]={0},k=0; char arr[100],brr[100]; scanf("%s",arr); for(int i=0;i<strlen(arr);i++) { if(visited[arr[i]-'a']==0) { brr[k++]=arr[i]原创 2021-07-26 19:13:41 · 193 阅读 · 0 评论 -
前缀和与差分
输入样例:【样例1】31 2 3【样例2】41 3 1 1【样例3】827 23 76 2 3 5 62 52输出样例:【样例1】0【样例2】2【样例3】2题目描述:如样例所示,给出一串数字,让后将其左右分成两部分,使其和之差达到最小。代码如下:#include<stdio.h>int main(){ int n; int arr[101],brr[101],sum=0,min=101; scanf("%d",&n)原创 2021-07-25 21:05:48 · 130 阅读 · 0 评论 -
C++ STL(标准模板库)
代码如下:#include<bits/stdc++.h>using namespace std;bool cmp(int x,int y){ return x>y;}int main(){ int arr[5]={3,2,-1,99,54}; sort(arr,arr+5);//顺序 for(int i=0;i<5;i++) { printf("%d ",arr[i]); } printf("\n"原创 2021-07-25 10:22:19 · 232 阅读 · 0 评论