![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
BigSnow233
这个作者很懒,什么都没留下…
展开
-
异或三(彼岸花)
问题:有一排彼岸花,其特点是:1.雄花会向相邻的花授粉,雄花被一朵花授粉则变为雌花,被两朵或不被授粉,则保持不变;2.雌花被一朵花授粉则变为雄花,被两朵或不被授粉,则保持不变;现要想知道X年后每朵花的性别。(用1表示雄花,0表示雌花)#include #include #define N 1005int a[2*N];int main() {原创 2015-12-08 17:26:23 · 545 阅读 · 0 评论 -
位运算
问题: 输入一个32位无符号整数,将该数对应的二进制位翻转,输出翻转后的二进制数对应的十进制值。#includeunsigned int bit[32]; int main(){ unsigned int ans;int i,k,x,n; bit[0]=1; for(i=1;i<32;i++) bit[i]=bit[i-1]<<1; scanf("%d",&n); whil原创 2015-12-08 17:19:27 · 432 阅读 · 0 评论 -
异或二
问题:给定一组数组(数组元素范围为0#includeint arra[3000010];int Findbit(int flag) { int key=1; while(flag&key==0) key<<=1; return key;}int main() { int N,flag1=0,key,i,num1=0,num2=0,index; scanf ("%d原创 2015-12-08 16:59:14 · 468 阅读 · 0 评论 -
矩阵快速幂
问 题 简 述:求Fibonacci数列第n项 F[n] % 10000。其中: n ≤ 10086110 询问次数 Q ≤ 10 Hint:Fibonacci数列定义:F[0] = 0F[1] = 1F[n] = F[n − 1] + F[n − 2] ( n ≥ 2)#include int A[3], B[3], temp[3], n, q;原创 2015-12-08 16:51:36 · 362 阅读 · 0 评论 -
异或一
题目:给定一个数组,除了一个数只出现一次以外,其他数都出现了两次。 目的就是找出只出现一次的数。#includeint main() { int n,c,i,c1=0; scanf( "%d",&n); for( i=0;i<n;i++) { scanf("%d",&c); c1^=c; } printf(原创 2015-12-08 16:39:29 · 347 阅读 · 0 评论 -
树的直径
http://www.cnblogs.com/wuyiqi/archive/2012/04/08/2437424.html转载 2015-12-18 15:46:28 · 348 阅读 · 0 评论 -
最小逆序数
问题描述:有一个长度为 n 个正整数序列{a0,a1,…,an-1}。定义一次操作为:交换序列中任意两个相邻的元素。求不超过 k 次操作后,这个序列的最小的逆序数。#include#include#define minin(a,b) a<b?a:b#define less(a,b) a<=b#define item intstruct bag{ item*a; item*b;原创 2015-12-18 15:23:48 · 1058 阅读 · 0 评论 -
单调队列
问题描述:给你一个大小为N的数组,再给你一个K值,要你计算[1,K],[2,K+1],[3,K+2],……,[N-K+1,N]这几段区间的最大值的和并输出。#include#includestruct queue{ int data[100005]; int lp; int rp; queue(){memset(data,0,sizeof(data));lp=rp=0;} vo转载 2015-12-18 15:03:54 · 299 阅读 · 0 评论 -
冬天来了
问题描述:某个小村庄里面有一个农民小明,他一开始一天可以生产L 个玉米,在接下来的每天里,他可以选择让自己的生产能力+1(当天不生产),或者生产L 个玉米,但是距离冬天到来只有N 天了,他必须在冬天到来之前储备尽可能多的玉米过冬,可是每天都会有地主来收玉米,如果不能交出足够的玉米,地主会没收小明的土地,于是小明请求你帮忙计算他最后最多可以留下多少玉米?如果在中途不能满足地主要求,就输出“D转载 2015-12-18 14:46:37 · 430 阅读 · 0 评论 -
后缀表达式
将一个只包含 +, -, *, / , %,(,)的非负整数计算表达式的 中缀表达式 转化为 后缀表达式#include #include #include std::stack opr; int order(char c) {return (c == '+' || c == '-') ? 0 : 1;} int main转载 2015-12-18 14:19:28 · 333 阅读 · 0 评论 -
单调栈
题意:给你一段区间,需要你求出(在这段区间之类的最小值*这段区间所有元素之和)的最大值#include#define maxn 100010struct node{ int sum,num; //sum为每个元素两边延伸的和,num为该元素的值 }a[maxn];__int64 MAX(__int64 a,__int64 b){return a>b?a:b;}in转载 2015-12-18 14:14:49 · 321 阅读 · 0 评论 -
链表一
问题:若干只猪排成一队,从2开始编号。每次排在最前面的为幸运猪(假设编号是i),幸运猪及它后面的第i只,2*只,3*i只...的小猪出列,然后重复上述过程。把幸运猪的编号从小到大排序,现在问第n个幸运猪的编号是多少? 0#include#include#define N 33810int next[N];int a[3001];int main(){ int i,原创 2015-12-08 17:31:56 · 357 阅读 · 0 评论