- 博客(4)
- 收藏
- 关注
原创 278.数字组合
给定 N个正整数 A1,A2,…,ANA1,A2,…,AN,从中选出若干个数,使它们的和为 M,求有多少种选择方案。输入格式第一行包含两个整数 N 和 M。第二行包含 N 个整数,表示 A1,A2,…,AN。输出格式包含一个整数,表示可选方案数。数据范围1≤N≤100,1≤M≤10000,1≤Ai≤1000,答案保证在 int 范围内。输入样例:4 41 1 2 2输出样例:3这道题其实就是利用总方案数=选择a[i]的方案数+不选择a[i]的总方案数
2022-02-20 22:25:47
457
原创 165. 小猫爬山
ssa'f翰翰和达达饲养了 N只小猫,这天,小猫们要去爬山。经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<)。翰翰和达达只好花钱让它们坐索道下山。索道上的缆车最大承重量为 W,而 NN 只小猫的重量分别是 C1、C2……CNC1、C2……CN。当然,每辆缆车上的小猫的重量之和不能超过 W。每租用一辆缆车,翰翰和达达就要付 11 美元,所以他们想知道,最少需要付多少美元才能把这 N 只小猫都运送下山?输入格式第 11 行:包含...
2022-02-13 22:55:32
63
原创 快速排序法
快速排序的大致思想就是:先找出一个基准数,然后以它为基准进行排序,把比它小的数放在左边,比它大的数放在右边。然后利用递归思想,在两边反复进行上面这个操作就可以了。实际操作可以看一下下面的函数。下面就是快速排序法的函数:void ksort(int *arr,int left,int right){ if(left>right) return; int t=arr[left];//先设第一个数为基准数 int i=left,j=right;// while(j!=
2022-01-30 22:55:40
390
原创 二维前缀和
一维前缀和就类似:s[1]=a[1];s[2]=a[1]+a[2];s[3]=a[1]+a[2]+a[3];...s[n]=a[1]+a[2]+a[3]+...+a[n];故 a[i]=s[i]-s[i-1];求数组a中某段连续的数之和时,便可利用a[i]+a[i+1]+...+a[j]=s[j]-s[i-1];其实二维也是相同的道理,只是把直线上的数转到了平面上来了。下面就是二维前缀和的原理了如图中,若要求面积S4,可以用整个图形的面积-S1-S1-S3,即S
2022-01-23 22:42:47
207
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人