ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021.4.10-4.16总结

2021-04-16 16:02:51  阅读:175  来源: 互联网

标签:10 dist 2021.4 4.16 int st 精听 include 号点


文章目录


主要学习了

一:算法部分:

1.数论中的基础算法:

1.1 最大公约数

//gcd(a,b) = gcd(b,a%b)

int gcd(int a,int b)
{
	return b?gcd(b,a%b) :a;
}

1.2 筛质数

(暴力做法)

for(int i = 2;i<=n/i;i++)
{
	if(n%i==0) a[cnt++] = i;
}

(埃筛法)

bool st[N];
for(int i = 2;i<=n;i++)
{
	if(!st[i])
	for(int j = i+i;j<=n;j+=i)
		st[j] = true;
}

2.图论中的dijkstra算法

2.1问题引入

给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为正值。

请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。

输入格式
第一行包含整数 n 和 m。

接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。

输出格式
输出一个整数,表示 1 号点到 n 号点的最短距离。

如果路径不存在,则输出 −1。

数据范围
1≤n≤500,
1≤m≤105,
图中涉及边长均不超过10000。

输入样例:
3 3
1 2 2
2 3 1
1 3 4
输出样例:
3

2.2代码

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;

int n,m;
const int N= 510;
int dist[N];
int g[N][N];
bool st[N];

int dijkstra()
{
    memset(dist,0x3f,sizeof dist);
    dist[1] = 0;
    for(int i = 0;i<n;i++)
    {
        int t = -1;
        for(int j = 1;j<=n;j++)
        {
            if(!st[j]&&(t==-1||dist[t]>dist[j]))
                t = j;
        }
        st[t] = true;
        for(int j = 1;j<=n;j++)
        {
            if(dist[j]>dist[t]+g[t][j])
                dist[j] = dist[t]+g[t][j];
        }
    }
    if(dist[n]==0x3f3f3f3f) return -1;
    return dist[n];
    
}
int main()
{
    cin>>n>>m;
    memset(g,0x3f,sizeof g);
    while(m--)
    {
        int x,y,z;
        cin>>x>>y>>z;
        g[x][y] = min(g[x][y],z);
    } 
    cout<<dijkstra();
    
}

2.3 练习题一:

在 n 个人中,某些人的银行账号之间可以互相转账。

这些人之间转账的手续费各不相同。

给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问 A 最少需要多少钱使得转账后 B 收到 100 元。

输入格式
第一行输入两个正整数 n,m,分别表示总人数和可以互相转账的人的对数。

以下 m 行每行输入三个正整数 x,y,z,表示标号为 x 的人和标号为 y 的人之间互相转账需要扣除 z% 的手续费 ( z<100 )。

最后一行输入两个正整数 A,B。

数据保证 A 与 B 之间可以直接或间接地转账。

输出格式
输出 A 使得 B 到账 100 元最少需要的总费用。

精确到小数点后 8 位。

数据范围
1≤n≤2000,
m≤105
输入样例:
3 3
1 2 1
2 3 2
1 3 3
1 3
输出样例:
103.07153164

2.4 代码:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;

const int N = 2010;
double dist[N];
double g[N][N];
bool st[N];

int n,m,S,T;

void dijkstra()
{
    //memset(dist,0x3f,sizeof dist);
    dist[S] = 1;
    for(int i = 0;i<n;i++)
    {
        int t = -1;
        for(int j = 1;j<=n;j++)
        {
            if(!st[j]&&(t==-1||dist[t]<dist[j]))
                t = j;
        }
        st[t] = true;
        for(int j = 1;j<=n;j++)
        {
            dist[j] = max(dist[j],dist[t]*g[t][j]);
        }
    }
}
int main()
{
    double c1 ,c2;
    cin>>n>>m;
    while(m--)
    {
        int x,y,z;
        cin>>x>>y>>z;
        //c1 = (100-z)/100;
        c2 = (100.0-z)/100;
        g[x][y] = g[y][x] = max(g[x][y],c2);//每条边存储百分比的值
    }
    //cout<<c1<<endl;
   //cout<<c2<<endl;
    cin>>S>>T;
    dijkstra();
    printf("%.8lf",100/dist[T]);
}

2.5 复习了前缀和、递归和递推、枚举排列数、背包问题、以及练习了部分BFS的习题

https://blog.csdn.net/qq_45933509/article/details/115482370

二:英语部分:

精听了美国金融新闻1,2(very hard)
精听了DailyEnglish 83,84(medium hard)
复习了大学生英语竞赛的部分语法(准备4.24的考试)
1:https://www.bilibili.com/video/BV1pi4y1T7hR
2:https://www.bilibili.com/video/BV1LV411v7hb

83:https://www.bilibili.com/video/BV1U7411a7xG?p=83&spm_id_from=pageDriver

humble谦逊的,简陋的
showy(fancy)绚丽的,华贵的

84:https://www.bilibili.com/video/BV1U7411a7xG?p=84&spm_id_from=pageDriver

1.精听词汇:

upbeat on对…看好
small-cap stocks小公司股票
cyclicals周期性股票
Caterpillar美国建材公司
infrastructure基础设施
volatility动荡
volatileadj.动荡的
prospect for对…的展望
hold sth. back把…拖住
The Federal Reserve美联储
gonnagoing to
more of a … than …与其说是…不如说是…

在这里插入图片描述

2.精听词汇

inauguration就职
orderly有条不紊的
uneventful没有发生重大事件的
fiscal财政的
scenario情境

在这里插入图片描述

标签:10,dist,2021.4,4.16,int,st,精听,include,号点
来源: https://blog.csdn.net/qq_45933509/article/details/115752656

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有