数算 2

线性表

顺序表示

struct SeqList{
int n;
int MAXNUM;
DataType *element;
}
typedef struct SeqList *PSeqList;

- 不适合随机插入和删除
- 节省了空间但是操作的时间复杂度增加了

链接表示

数据域 指针域

struct Node;
typedef struct Node *PNode;
struct Node{
Datatype info;
PNode link;
}
typedef struct Node *LinkList;

- 存储密度小
- 查找的时间代价比较大
- 循环链表、双链表、循环双链

矩阵

行优先 列优先

- 稀疏矩阵:

三元组表示 伪地址表示

带辅助行向量的二元组表示 行-列表示

下面是一个数组解决Josephus问题的代码例子

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <math.h>
 4
 5 #define MAXNUM 30000
 6
 7 int main(){
 8     int n, s, m;
 9     FILE *fp=fopen("input.txt", "r");
10     fscanf(fp,"%d %d %d", &n, &s, &m);
11     fclose(fp);
12     FILE *tp=fopen("output.txt", "w");
13     if (n>=MAXNUM) printf("n is too large!\n");
14     int a[MAXNUM];
15     for (int i=0;i<n;i++) a[i]=1;
16     int j=s%n-1, t=0,x;
17     for (int i=0;i<n;i++){
18         t=0;
19         x=m%(n-i);
20         if(x==0) x=n-i;
21         while (t<x){
22             if (a[j]==1) t++;
23          //   printf("%d %d %d\n",i,j,t);
24             j++;
25             if (j==n) j=0;
26         }
27         if(j==0){
28             a[n-1]=0;
29             fprintf(tp,"%d ",n);
30         }
31         else{
32             a[j-1]=0;
33             fprintf(tp,"%d ",j);
34         }
35     }
36     fclose(tp);
37     return 0;
38 }

时间: 2024-09-28 17:35:05

数算 2的相关文章

随 机 数 算 法

一.随机数概述 在password技术中,随机序列是非常重要的,比方密钥产生.数字签名.身份认证和众多的password学协议等都要用到随机序列.所以产生高质量的随机数序列对信息的安全性具有十分关键的数据.随机数分为真随机数和伪随机数,计算机通过算法产生的随机数并不上真正意义上的随机数,非常easy被破解,仅仅能称为伪随机数.若要产生真正的随机数,必须通过硬件来实现,比方使用离子辐射事件的脉冲检測器.气体放电管和带泄露的电容等,可是为每台计算机配备这种装置上不可能.所以在此我们通过改进我们的算法

【数算A】舰队、海域出击!

就是判断一个有向图是否有环,注意图可能不连通. 用dfs搜一下就行了. 1 #include<cstdio> 2 #include<cstring> 3 int n,m,t,h[100001],v[100001]; 4 struct node{ 5 int next,to; 6 }e[500001]; 7 int dfs(int i){ 8 v[i]=-1; 9 for(int j=h[i];j;j=e[j].next){ 10 int t=e[j].to; 11 if(v[t]&

【数算A】表达式&#183;表达式树&#183;表达式求值

这道题在输出上太坑了,画出来不像树... 1 #include<iostream> 2 #include<cstring> 3 #include<stack> 4 using namespace std; 5 int val[26],n,len,ans,maxDep; 6 char infix[55],postfix[55],out[50][300]; 7 struct node{ 8 int ch; 9 node *l,*r; 10 node(){ 11 l=r=NU

[数算]数量关系

原文地址:https://www.cnblogs.com/moonsoft/p/9401926.html

计蒜客NOIP模拟赛D2T3 数三角形

刚刚上高中的洁洁在学习组合数学的过程中遇到一道麻烦的题目,她希望你能帮助她解决.给定一张无向完全图 G,其中大部分边被染成蓝色,但也有一些边被染成红色或者绿色.现在,洁洁需要给这张图的多样性进行打分.一张图的多样性取决于它的同色和异色三角形的个数.具体来说,G 中每有一个三边颜色都互不同的三角形(异色三角形)可以得 3 分,每有一个三边颜色都相同的三角形(同色三角形)则要被扣掉 6 分,其它三角形不得分也不扣分. 现在,请你写一个程序来计算 G 的多样性分数.输入格式 第一行两个正整数 n 和

hdu 不可摸数

不可摸数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8417    Accepted Submission(s): 2176 Problem Description s(n)是正整数n的真因子之和,即小于n且整除n的因子和.例如s(12)=1+2+3+4+6=16.如果任何 数m,s(m)都不等于n,则称n为不可摸数. Input

一道公式题——数三角形

数三角形(count) 时限:10s 内存:512M 刚刚上大学的洁洁在学习组合数学的过程中遇到一道麻烦的题目,她希望你能帮助她解决.给定一张无向完全图G,其中大部分边被染成蓝色,但也有一些边被染成红色或者绿色.现在,洁洁需要给这张图的多样性进行打分.一张图的多样性取决于它的同色和异色三角形的个数.具体来说,G中每有一个三边颜色不同的三角形可以得3分,每有一个三边颜色相同的三角形则要被扣掉6分,其它三角形不得分也不扣分. 现在,请你写一个程序来计算G的多样性分数. 输入数据: 第一行两个正整数n

一文讲透Dubbo负载均衡之最小活跃数算法

本文是对于Dubbo负载均衡策略之一的最小活跃数算法的详细分析.文中所示源码,没有特别标注的地方均为2.6.0版本. 为什么没有用截止目前的最新的版本号2.7.4.1呢?因为2.6.0这个版本里面有两个bug.从bug讲起来,印象更加深刻. 最后会对2.6.0/2.6.5/2.7.4.1版本进行对比,通过对比学习,加深印象. 本文目录 第一节:Demo准备. 本小节主要是为了演示方便,搭建了一个Demo服务.Demo中启动三个服务端,负载均衡策略均是最小活跃数,权重各不相同. 第二节:断点打在哪

21中介模式

 1中介模式的核心内容是: A:通过中间这向多方发送消息 2中介模式的作用:通过中介模式模式中介对两个互不通信的部分进行发通知. 3中介模式具体描述 MEDIATOR调停者模式 调停者模式:调停者模式包装了一系列对象相互作用的方式, 使得这些对象不必相互明显作用.从而使他们可以松散偶合. 当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用. 保证这些作用可以彼此独立的变化.调停者模式将多对多的相互作用转化 为一对多的相互作用.调停者模式将对象的行为和协作抽象化 ,把对象在小