- 博客(11)
- 收藏
- 关注
原创 区间维护(树状数组,线段树和树上莫队)
树状数组树状数组,顾名思义,是长的像一棵树的数组,那具体的结构是怎么样的呢?这里以区间和为例具体我们要怎么实现呢?如何来建立两个数组之间的关系?或许你这么看就明白了没错,就是找到最下位的1,加到原来的下标上就能得到它的父亲结点下标举几个例子1+lowbit(1)=2 2+lowbit(2)=4 3+lowbit(3)=4那么我们的lowbit应该怎么写呢?int lowbit(int n){ return n&(-n); }是不是很简单,也非常的好记。大家可以从补码和反码的
2021-10-26 16:52:39
269
原创 1553赈灾
由于数据过大,我们考虑找规律,我们注意到,1和1亦或为0,那么2n个1亦或也为0,2n+1个1亦或为1,由此此题就变得格外简单了。#include<stdio.h>//int main(){ int n; scanf("%d",&n); if(n%2==0)printf("0"); else printf("1"); return 0;}...
2021-10-05 15:10:01
316
原创 1499IP地址
#include<stdio.h>//暴力模拟int change(int i,char a[]) { //将十进制转化为16进制 if (i >= 16) { switch (i % 16) { case 0: a[0] = '0'; break; case 1: a[1] = '1'; break; case 2: a[1] = '2'; break; case 3: a[1] = '3';
2021-10-01 08:44:49
63
原创 蒜头君算术1402
#include<stdio.h>//计算两个三位数相加,进位的次数int main(){int a,b; int ans=0; int z=0;//z表示进位 scanf("%d %d",&a,&b); if(a==0&&b==0)return 0; else do{ for(;a!=0&&b!=0;) if(a%10+b%10+z>=10){ t++;a/=10;b/=10;z=1;
2021-09-30 19:06:20
96
原创 1347判断整数位数
#include<stdio.h>#include<math.h>//给定一个整数求位数int main(){ int a,ans=1; scanf("%d",&a); while(abs(a)>=10){ a/=10; ans++; } printf("%d",ans); return 0;}```
2021-09-30 14:42:25
70
原创 1077数字反转
思路:这题要求将数字反着输出,我们首先考虑负数的情况,如果为负,则先输出一个负号,其次我们考虑原数字最后为0的情况,我们先统计0的个数,再从第一个不为0的数开始倒序输出,至此,一般的情况都考虑到了,但是我们还忽略了一种只有0的情况,所以再加入一种特殊判断即可。#include<stdio.h>#include<string.h>int main() { char a[100]; int j = 0; gets(a); int dis[2] = {0};设置标记数组 i
2021-09-29 17:14:49
187
原创 1103统计数字字符
#include<stdio.h>int main() { char a[256] ="\0"; gets(a); int i = 0, count = 0; while (a[i]) { if (48 <= a[i] && a[i] <= 57)count++; i++; } printf("%d", count); return 0;}
2021-09-29 17:08:14
66
原创 1069球弹跳高度的计算
#include<stdio.h>int main(){ double height=0,sum=0;//height表示高度,sum表示路程总和 scanf("%lf",&height); for(int i=0;i<10;i++)//进行模拟循环 { sum+=height; height/=2.0; sum+=height; } sum-=height;//路程要减去最后一次 printf("%g\n",sum); printf("%g\
2021-09-29 17:06:08
218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人