• 个人简介

    #include<bits/stdc++.h>
    using namespace std;
    struct edge{
        int to,p;
        bool operator < (const edge & other) const{
            return p > other.p;
        }
    };
    int dis[1000005];
    int vis[1000005];
    int ans[1000005];
    priority_queue<edge> que;
    vector<edge> vt[10005];
    int main(){
        int n,m,s,q;
        cin >> n >> m >> s >> q;
        for(int i=1;i<=m;i++){
            int a,b,c;
            cin >> a >> b >> c;
            vt[a].push_back({b,c});
            vt[b].push_back({a,c});
        }
        memset(dis,0x3f,sizeof(dis));
        dis[1] = 1;
        que.push({1,0});
        while(!que.empty()){
            int x = que.top().to;
            que.pop();
            if(vis[x] == 1) continue;
            vis[x] = 1;
            for(int i=0;i<vt[x].size();i++){
                int y = vt[x][i].to;
                if(dis[x] + vt[x][i].p < dis[y]){
                    dis[y] = dis[x] + vt[x][i].p;
                    que.push({y,dis[y]});
                }
            }
        }
        int ans1 = 0;
        for(int i=1;i<=s;i++){
            int d;
            cin >> d;
            if(dis[d] - 1 <= q){
                ans1 ++;
                ans[ans1] = i;
            }
        }
        cout << ans1 << endl;
        for(int i=1;i<=ans1;i++) cout << ans[i] << endl;
        return 0;
    }
    

    3213

    						佛祖保佑 代码无BUG 
                                _ooOoo_
                               o8888888o
                               88" . "88
                               (| -_- |)
                                O\ = /O
                            ____/`---'\____
                          .   ' \\| |// `.
                           / \\||| : |||// \
                         / _||||| -:- |||||- \
                           | | \\\ - /// | |
                         | \_| ''\---/'' | |
                          \ .-\__ `-` ___/-. /
                       ___`. .' /--.--\ `. . __
                    ."" '< `.___\_<|>_/___.' >'"".
                   | | : `- \`.;`\ _ /`;.`/ - ` : | |
                     \ \ `-. \_ __\ /__ _/ .-` / /
             ======`-.____`-.___\_____/___.-`____.-'======
                                `=---='
    

    万恶宿舍
    https://moe.anosu.top/img/?sort=1080p


    变量 创建变量: 数据类型 + 变量;

    int a;       //定义一个变量
    int b = 10;  //定义并初始化一个变量
    a = 10;      //给一个变量赋值
    

    输出:

    printf("%d",a);  // %d 格式化占位符  
    printf("你刚刚输入的数字是%d",a);  //文本内容可以直接和格式化占位符相连
    
    

    特性: 取名规则

    • 变量只能由英文字母、数字、下划线_ 组成 大写和小写英文区分 数字不能是变量的开头 变量不能和关键字重名 变量不能重名

    输入

    scanf("格式化占位符",&变量名);  // &表示取地址符
    scanf("%d",&a);
    scanf("%d %lf",&a,&b); //多个数据空格隔开
    
    

    数据类型

    整形 int %d 长整型 long int %ld 长长整型 long long int 单精度浮点型 float %f%lld 双精度浮点型 double %lf 短整型 short int %hd

    四舍五入保留小数位

    printf("%.5lf",a);  //只能做在输出里
    

    注:保留小数、换行、文本提示等内容不要做在scanf()

  • 最近活动