XMUT 简单图论专场(拓扑排序、最小生成树、贪心)

右腿驱动电路设计:从共模干扰原理到生物电采集实战 在生物电信号采集领域,共模干扰是影响测量精度的核心挑战之一,其本质源于环境电磁场通过容性耦合在人体表面产生的感应电流。根据欧姆定律,由于人体组织阻抗的不均衡性,共模电流会在不同测量点产生差异化的压降,从而转化为难以滤除的差分噪声。为解决这一问题,右腿驱动技术应运而生,它通过负反馈原理主动抵消干扰,显著提升系统的共模抑制比。该技术广泛应用于心电图、脑电图等医疗电子设备中,是确保微弱生理信号质量的关键环节。本文结合工程实践,深入剖析了右腿驱动电路中的仪表放大器选型、反馈环路稳定性设计以及PCB布局布线要点,为高 阅读详情


A - 小Y上学记——修学分


Problem Description

小Y终于如愿以偿地通过高考来到了魂牵梦萦的大学校园——ACdream大学。来到校园的第一件事就是选课。

由于每一门课都有1个学分~而且有一些课需要先学完别的课程(例如必须先学会高等数学,才能学会量子力学,必须先学会走,才能学会跑)

ACdream大学需要学生修够若干学分才允许毕业。

请按顺序输出小Y的一种方案(若不止一种答案,请输出字典序最小的一种方案)

Input

多组数据,每组数据首先是两个整数n,m,k,分别表示学科总数,学科之间的关系数,以及毕业所需的最少学分。

(2<=n<=100, 0<=m<=500,1<=k<=n)

接下来是m行,每行是两个整数a,b表示学科a是学科b的前置学科。

Output

对于每组数据,若小Y不存在任何方案选课,请输出-1.

否则在一行输出m个整数,表示小Y按顺序修的学科编号。

Sample Input
2 1 2
0 1
2 2 2
1 0
0 1
3 2 1
1 0
0 1
3 0 3
Sample Output
0 1
-1
2
0 1 2
Hint

对于第一组数据,先修完第0学科,获得1学分,再修以第0学科为前置学科的第1学科,获得1学分,即可满足毕业条件:2学分。

对于第二组数据,由于第0学科的前置学科为第1学科,而第1学科的前置学科为第2学科,因此小Y无论如何也无法满足毕业条件。

对于第三组数据,由于多了第2学科,而且第2学科不需要前置学科,因此只需要修完第2学科即可满足毕业条件了。

对于第四组数据,没有任何的先后限制,因此6种全排列方案均符合题意,字典序最小的方案为0,1,2


这里有一道我做过的类似题目可供参考:http://blog.youkuaiyun.com/enjoying_science/article/details/47380099


编程思想:根据题意,可抽象成图的拓扑排序。这里采用map和链式前向星两种方法来实现拓扑排序算法。


AC  code1(map方式):

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<queue>
#include<math.h>
#include<vector>
#include<map>
#include<set>
#include<cmath>
#include<string>
#include<algorithm>
#include<iostream>
#define LL long long 
#define exp 1e-10
#define MAXN 1000010
using namespace std;
const int INF=0x3f3f3f3f;
const int N = 100005;
const int mod = 1000000007;
int ma[555][555];
int ind[555];
int ans[555];
int main()
{
	//freopen("D:\in.txt","r",stdin);
	int n,m,k,i,j,cnt;
	while(scanf("%d%d%d",&n,&m,&k)!=EOF)
	{
		memset(ma,0,sizeof(ma));
		memset(ind,0,sizeof(ind));
		for(i=1;i<=m;i++)
		{
			int a,b;
			scanf("%d%d",&a,&b);
			if(!ma[a][b])
			{
				ma[a][b]=1;
				ind[b]++;
			}
		}
		int node;
		cnt=0;
		for(i=0;i<n;i++)//i为成功拓扑排序的点的个数 
		{
			for(j=0;j<n;j++)//点的编号是从0开始的 
			{
				if(ind[j]==0)
				{
					node=j;
					ind[node]--;
					ans[i]=node;
					for(int jj=0;jj<n;jj++)
					{
						if(ma[node][jj])
						{
							ind[jj]--;
						}
					}
					break;
				}
			}
			if(j==n)//点的编号是从0开始的,到n-1都遍历完,直接跳出
				break;
		}
		if(i<k)//i为成功拓扑排序的点的个数 
		{
			printf("-1\n");
		}
		else
		{
			printf("%d",ans[0]);
			for(i=1;i<k;i++)
			{
				printf(" %d",ans[i]);
			}
			printf("\n");
		}	
	}
	return 0;
}


AC code2(链式前向星):

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <map>
#define MAX 505
using namespace std;
int InD[505];/*InD[i]记录点i的入度*/
int First[MAX];/*First[i]头结点的第一条边的编号*/
struct edge
{
    int TO;/*点*/
    int Next;/*下一条边的编号*/
}ID[3*MAX];
int SIGN;
void Add_E(int x,int y)/*添加点操作*/
{
    ID[SIGN].TO=y;
    InD[y]++;
    ID[SIGN].Next=First[x];
    First[x]=SIGN++;
}
int Jude(int x,int y)/*查找与X是否与Y相连*/
{
    int i;
    for(i=First[x];i!=0;i=ID[i].Next)   //查找与该点相关的点
    {
       if(ID[i].TO==y)return 0;
    }
    return 1;
}
int ToPoSort(int N,int Num[],int K)/*拓扑排序,邻接表*/
{
    int i,j,k;
    for(j=0;j<N;j++)
    {
        for(i=1;i<=N;i++)
        {
            if(InD[i]==0)
            {
                InD[i]--;
                Num[j]=i;
                for(k=First[i];k!=0;k=ID[k].Next)
                {
                    InD[ID[k].TO]--;
                }
                break;
            }
        }
        if(i>N)break;
    }
    if(j>=K)return 1;
    else return 0;
}
int main()
{
    int M,N,K,i;
    int a,b;
    int Num[MAX];
    while(scanf("%d%d%d",&N,&M,&K)!=EOF)
    {
        for(i=1;i<=N;i++){First[i]=0;InD[i]=0;}
        for(i=0,SIGN=1;i<M;i++)
        {
            scanf("%d%d",&a,&b);a+=1;b+=1;
            Add_E(a,b);
        }
        if(ToPoSort(N,Num,K))/*拓扑排序*/
        {
            for(i=0;i<K;i++)
            {
                if(i!=0)putchar(32);
                printf("%d",Num[i]-1);
            }putchar(10);
        }
        else printf("-1\n");
    }
    return 0;
}


B - 小Y上学记——小Y的玩偶

Problem Description

小Y最喜欢拆拆拆了~尽管他不一定能装回去。

小Y有一个很可爱的积木玩偶,是由一块一块积木拼接而成,现在小Y想把这个积木玩偶拆拆拆。

每一块积木玩偶都有一个耐久值,想把一块积木拆出来,小Y需要付出的能量就是和它直接拼接的所有积木的耐久值之和。

小Y很懒的~他想知道把这个玩偶全部拆好,最少需要付出多少能量?

Input

多组数据,每组数据首先是一个整数n表示积木块数。(0<n<=1000)

接下来一行包含n个整数,表示每块积木的耐久值a[i](0<=a[i]<=100000)。

接下来是n行,第i行代表第i块积木的连接情况。

每一行首先是一个整数k,表示这块积木与k块积木相连,接下来是k个整数,代表与这块积木相连的积木标号(标号从0开始)

保证连接情况合法。

Output
对于每组数据,输出一个整数,表示小Y需要的最少能量。
Sample Input
4
10 20 30 40
2 1 3
2 0 2
1 1
1 0
4
100 100 100 100
1 1
3 0 2 3
2 1 3
2 1 2
7
40 10 20 10 20 80 40
4 2 3 4 5
1 4
2 0 3
5 0 2 4 5 6
4 0 1 3 6
2 0 3
2 3 4
Sample Output
40
400
160
Hint

对于第一组数据,首先拆掉第2块积木,需要20能量,然后拆掉第1块积木,需要10能量,接着拆掉第3块积木,需要10能量,最后只剩下第0块了,不需要能量了。总共需要40点能量。

对于第二组数据,无论怎么拆除,都是需要400点能量。


编程思想:贪心+邻接表。每次都拆耐久值最大的点,然后更新与其连接的点的信息,直到图中剩下一个点,这时所得的能量和最小。下面证明这种贪心策略是正确的。每次选择耐久度最大的点,设这个点的耐久度为K,有m个点与其连接,这m个点的耐久度为K1~Km,若不取走这个耐久度最大的点,那么要拆了连接它的m条边的点,则需要消耗K*m能量,如果直接把这个点拆除了,则需要K1+K2+...+Km能量。因为K*m>=K1+K2+...+Km,所以拆掉连接的这相同的m条边时,后者消耗的能量更少。因此,每次拆除耐久度最大的点,然后再去更新连接图,这样可以保证消耗的能量最小。


AC code:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<queue>
#include<math.h>
#include<vector>
#include<map>
#include<set>
#include<cmath>
#include<string>
#include<algorithm>
#include<iostream>
#define LL long long 
#define exp 1e-10
#define MAXN 1000010
using namespace std;
const int INF=0x3f3f3f3f;
const int N = 100005;
const int mod = 1000000007;
int n,k,m,mi;
int p[MAXN]; 
struct node{
	int v;
	int id;
}a[MAXN];
int b[MAXN];
bool cmp(node a,node b)
{
	return a.v>b.v;
}
vector<int>vec[MAXN];
bool vis[MAXN];
LL ans,mm;
int main()
{
	//freopen("D:\in.txt","r",stdin);
	int i,j,t;
	while(scanf("%d",&n)!=EOF)
	{
		for(i=0;i<n;i++)
		{
			scanf("%d",&a[i].v);
			a[i].id=i;
		}
		sort(a,a+n,cmp);
		for(i=0;i<n;i++)
			b[a[i].id]=i;
		memset(p,0,sizeof(p));
		memset(vis,false,sizeof(vis));
		for(i=0;i<n;i++)
			vec[i].clear();
		mm=-INF;
		mi=0;
		for(i=0;i<n;i++)
		{
			scanf("%d",&k);
			while(k--)
			{
				scanf("%d",&t);
				vec[i].push_back(t);
				p[i]+=a[b[t]].v;
			}
		}
		ans=0;
		for(j=0;j<n-1;j++)
		{
			mi=a[j].id;
			ans+=p[mi];
			for(i=0;i<vec[mi].size();i++)//更新连接的点
			{
				p[vec[mi][i]]-=a[b[mi]].v;
			}
			a[b[mi]].v=0;//0表示已删除,不再对与它连接的点有关系,即“惰性删除”
		}
		printf("%lld\n",ans);
	}
	return 0;
}





C - 小Y上学记——认识新同学

Problem Description

小Y来到了一个新的班级,新的集体,第一件事肯定是要去认识新同学。

然而想认识全班同学,所需要的代价是很大的,所以小Y想让代价尽可能小。

认识新同学有两种办法,一种是直接去认识,另一种是通过已经认识的同学去认识新同学。

小Y想知道最小代价是多少呢?

Input

多组数据,每组数据首先是一个N,表示新的班级的同学数(包括小Y,2<=N<=1000)

接下来是N-1个整数,表示小Y直接认识第i名同学所需要的代价。

接下来是一个N-1阶矩阵,其中第i行第j列表示通过第i名同学认识第j名同学的代价。

其中保证对角线为0,且保证对称.

所有代价均为不超过1000的正整数。

Output
对于每组数据,输出一个整数,表示最少代价。
Sample Input
3
2 4
0 1
1 0
4
2 4 3
0 1 2
1 0 1
2 1 0
Sample Output
3
4

编程思想:根据题意,可抽象成求一颗最小生成树。这里采用利用并查集构造最小生成树的克鲁斯卡尔算法实现。


AC  code:

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<queue>
#include<vector>
#define LL long long
#define MAXN 1000010
using namespace std;
const int INF=0x3f3f3f3f;
struct node{
    int u;
    int v;
    int w;
}e[MAXN];
int point[MAXN],f[MAXN];
int ans,n,p,cnt;
bool cmp(node a,node b)
{
    return a.w<b.w;
}
void init(int n)
{
    for(int i=1;i<=n;i++)
        f[i]=i;
}
int fin(int root)
{
    int son,tem;
    son=root;
    while(root!=f[root])
    {
        root=f[root];
    }
    while(son!=root)
    {
        tem=f[son];
        f[son]=root;
        son=tem;
    }
    return root;
}
bool join(int r1,int r2)
{
    int x=fin(r1);
    int y=fin(r2);
    if(x!=y)
    {
        f[x]=y;
        return true;
    }
    return false;
}
int clu()
{
    ans=0;
    for(int i=1;i<=p;i++)
    {
        int u=e[i].u;
        int v=e[i].v;
        if(join(u,v))
        {
            ans+=e[i].w;
            cnt++;
               
        }
    }
    return ans;
}
int main()
{
    //freopen("D:\in.txt","r",stdin);
    int i,j,l,tt;
    while(scanf("%d",&n)!=EOF)
    {
        p=0;
        for(i=2;i<=n;i++)
        {
            p++;
            e[p].u=1;
            e[p].v=i;
            scanf("%d",&e[p].w);
        }
        for(i=2;i<=n;i++)
        {
            for(j=2;j<=n;j++)
            {   
                scanf("%d",&tt);
                p++;
                if(i==j)
                {
                    tt=INF;
                }   
                e[p].u=i;
                e[p].v=j;
                e[p].w=tt;
            }
        }
        sort(e+1,e+p+1,cmp);
        cnt=0;
        init(n);
        cout<<clu()<<endl;
    }
    return 0;
}



UNet 改进(22):结合Transformer结构 保留了UNet的经典编码器-解码器结构在瓶颈层使用Transformer替代传统的卷积层采用跳跃连接保持空间细节信息使用双卷积块(DoubleConv)作为基础构建模块。 阅读详情

相关推荐

拉曼光谱仪的原理与应用——TFN 7G F660手持式拉曼光谱识别仪

拉曼光谱仪的原理与应用——TFN 7G F660手持式拉曼光谱识别仪

TFN_yzgd的博客 926

题目序号配给 字典序最小的拓扑排序

来源:长沙理工大学2018区域赛个人选拔赛1 题目: 描述: 在一种竞赛中,题目往往是成套出现的。一道基础题,稍加改动就会使难度上升几个档次。 现在有n道题目,编号为1~n;给出了m个二元组,每个二元组&lt;a,b&gt;&lt;a,b&gt;表示 b题目是a题目的加强版,每个题目可能会有多个加强版,加强版的题目也可能会有加强版。 现在要将这n道题目放组成一场比赛,出于人文关怀方面...

shadandeajian的博客 1323

carsim与simulink联合仿真学习笔记(二)——使用C-class车模做driver model仿真(5 driver sensors)

Driver model 在carsim的Simulink库中自带外部驾驶员模型,打开后如图所示: 然后打开carsim中对应的数据集,如图所示: 具体仿真步骤不在赘述,注意到这里选择的是E-Class车模,那么如果我想选择C-Class车型进行仿真呢?点三角选择车型可以看到: 马赛克部分是我后来建的,如过没有使用过是没有马赛克部分的。那么既然这里没有C-class,又该怎么办呢? 创建C-...

xufuqiang2017的博客 4117

输出字典序最小的拓扑排序

#include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; #include&lt;queue&gt; #include&lt;vector&gt; #define N 10001 using namespace std; int n,m; int in[N];...

qq_40859951的博客 2275

树莓派4B网线直连Windows全流程:从IP查询到SSH登录避坑指南

本文提供了一份详细的树莓派4B通过网线直连Windows电脑的实战指南。核心步骤包括配置Windows网络共享、查询树莓派IP地址以及通过SSH进行安全登录与初始配置。文章深入解析了直连的网络原理,并重点分享了使用CMD命令和工具定位IP、避免常见错误的避坑技巧,帮助用户在没有显示器或路由器的环境下快速完成树莓派初始化。

grape的博客 1081

用树莓派Pico低成本更新USB-C PD控制器固件实战指南

固件更新是嵌入式系统开发与维护中的核心环节,它直接决定了硬件设备的功能、性能与兼容性。其原理通常是通过特定的通信接口(如SWD、JTAG、UART或USB)与设备内部的Bootloader建立连接,将新的程序代码安全写入非易失性存储器。在USB Power Delivery(PD)和Type-C生态中,固件更新技术尤为重要,它能修复协议握手Bug、适配新设备并提升供电策略的灵活性。本文聚焦于一个典型的工程实践场景:如何利用广泛普及且成本极低的树莓派Pico开发板,作为USB-C协议到I²C协议的转换桥,实现

weixin_27869497的博客 458

poj 3715 最小覆盖集,并且输出字典序最小解

首先最小覆盖集可以用二分图匹配求出来记为ans。<br />然后是怎么来求最小覆盖集。<br /> <br />首先枚举每个已经匹配了的点,如果去掉这个点以及和这个点所相连的所有边, 如果剩下图的二分图的最大匹匹配如果是ans-1,那么这个点就是最小覆盖集中的点,如果最大匹配还是ans,那么这个点就不是最小覆盖集点,因为如果选这个点,那么新加入的那个点肯定是在去掉的这个点一边,但是他是不能被去掉的这个点所覆盖。<br /> <br />接下来是怎么求解最小字典序,从0到n-1 ,如果找到一个点是覆盖点,那么

mindmb的专栏 2386

SAP-ABAP:新手入门篇——从0到1写出你的第一个ABAP Hello World程序并完成调试运行

本文是ABAP开发入门指南,详细介绍如何创建并运行第一个"Hello World"程序。主要内容包括:通过SE38事务码进入ABAP编辑器;创建以Z/Y开头的程序并保存为本地对象;编写简单的WRITE输出语句;完成语法检查、激活和执行流程;以及初步体验调试功能。文章特别强调ABAP开发的规范要求,如程序命名规则、激活与保存的区别等,并提供了详细的步骤说明和常见问题提示,帮助零基础开发者快速上手ABAP编程。

baidu_35680696的博客 479

jzoj通行证【DFS(两种方法)】【图论】

>Description 你离开了朝鲜,现在在俄罗斯给贵族开车。这本来是一件非常安全的工作,但是现在出了一些问题。贵族为了彰显自己的地位,在车上装了很多闪光灯。不过政府最近作出了一个决定:每条道路由若干个机构管辖,要在这条街道上使用闪光灯,至少要拥有其中一个机构的通行证。 那么如何获得通行证呢?当然要靠贿赂了。为了让开销尽量小,贵族希望你能找出一种方案,使得能通行与家与工作地点之间,且通行证...

//(^ o ^)// 300

技术面 - 手撕算法题整理

这篇博客整理了华为OD面试中涉及的算法题,包括LeetCode热门题目、OD原题和需要手写的算法,如二分查找、冒泡排序等。建议优先刷"hot100"的LeetCode题目,全刷OD原题,以及掌握手撕算法的基本原理。

m0_73659489的博客 1025

我用 Python 监听了自己的键盘,生成击键热力图,看看每天到底在“摸鱼”还是“搬砖”?

数据采集(监听)、持久化(I/O)与可视化展示,必须是三个完全独立的模块,这符合单一职责原则。在多线程读写 Python 字典时,锁住的时间要尽可能短,防止 I/O 线程把高频的监听线程阻塞住。这类涉及底层的代码与“键盘记录木马”只有一线之隔。永远不要把击键记录通过网络上传,所有数据必须localhost消化。人脑对枯燥的 JSON 日志是不敏感的,但对颜色和空间极其敏感。这也是为什么 Prometheus + Grafana 是标配。使用ctypes。

BUG猿的博客 193

拓扑排序(字典序最小,字典序最小)

E. Minimal Labels 题意: 给出 m 条有向边,组成有向无环图,输出一个 1 到 n 组成的排列,每个数只能出现一次,表示每个点的标号。如果有边(u,v)(u,v)那么labelu<labelvlabelu<labelv。要求最后字典序尽可能小。 solution: 拓扑排序的变形。这题要统计的是每个点的出度,比如说某个点出度为 0 ,那么它的标号一定很...

weixin_33778544的博客 1131

突破Cloudflare 5秒盾:TLS指纹伪装+Playwright行为模拟,爬虫存活率从35%提至78%

TLS指纹精准识别:Cloudflare会解析客户端的TLS Client Hello包(如SSL版本、密码套件、扩展字段),Python的requests/urllib库的TLS指纹是“黑名单级”,请求一出即被拦截;行为特征检测:静态的浏览器伪装(如User-Agent)已失效,Cloudflare会监控页面加载后的行为(是否有鼠标移动、滚动、点击,行为是否机械);JS环境深度验证:通过WebGL、Canvas、字体渲染、Navigator属性生成浏览器指纹,无头浏览器的默认配置会被瞬间识别;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2360

DAG上的最长路与字典序最小的方案输出

有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内。如果有多解,矩形编号的字典序应尽量小。 很显然,这样的矩阵...

Untersee-boot XXI 422

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

HDOJ 1814 Peaceful Commission

经典2sat裸题,dfs的2sat可以方便输出字典序最小的解... Peaceful Commission Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1578    Accepted Submission(s): 4

码代码的猿猿 1994

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

图的点着色、区间着色问题及其应用(基于贪心思想的DFS回溯法求点着色问题和区间着色算法求解任务调度问题)

Link:http://poj.org/problem?id=1419 Graph Coloring Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4503   Accepted: 2059   Special Judge Desc

林下的码路 4459

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Wormholes(题意抽象+SPFA判负权环)

Link:http://poj.org/problem?id=3259 Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 36128   Accepted: 13198 Description While expl

林下的码路 3008

稳定婚姻问题专题小结(二分图匹配 稳定婚姻问题--延迟拒绝算法(Gale-Shapley 算法))

Link:http://acm.hdu.edu.cn/showproblem.php?pid=1435 Stable Match Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 336    Accepted Sub

林下的码路 2684

汽车加油行驶问题专题

Example  one: Link:http://poj.org/problem?id=2431

林下的码路 2608

哈尔滨理工大学第五届ACM程序设计竞赛(热身)

Link:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2234 土豪银行 Time Limit: 500 MS Memory Limit: 32768 K Total Submit: 123(66 users)

林下的码路 2544

勇者斗恶龙(BFS)

第四届程序设计大赛 勇者斗恶龙 Time Limit:1000MS  Memory Limit:65536K Total Submit:57 Accepted:16 Description 有一头有着N个头的恶龙,有M名骑士,每名骑士有一把魔剑。每一把魔剑有两个参数ci和di。如果当前恶龙的头不小于ci个,则骑士可以使用魔剑砍掉恶龙的恰好ci个头;如果当前恶龙的头小于ci个,则骑士无法使用

林下的码路 2053

2013年福建省赛ACM题目

Link:http://acm.fzu.edu.cn/problem.php?pid=2146

林下的码路 1949

hiho一下#1050 : 树中的最长路

Link:http://hihocoder.com/problemset/problem/1050 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中,小Ho发现他不仅仅可以拼凑成一棵二叉树!还可以拼凑成一棵多叉树——好吧,其实就是

林下的码路 1920

算法提高 最大乘积 (排序+模拟+贪心)

Link:http://lx.lanqiao.org/problem.page?gpid=T136 问题描述   对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢? 输入格式   第一行一个数表示数据组数   每组输入数据共2行:   第1行给出总共的数字的个数n和要取的数的个数m,1   第2行依次给出这n个数,其中每个数字的范围满足:a[i]

林下的码路 1692

第四届福建省ACM程序设计大赛解题报告(未完待续)

Hearthstone Time Limit: 1000MS Memory Limit: 65536KB Total Submissions: 63 Accepted: 28 Share Description:       Cdfpysw loves playing a card game called "Hearth

林下的码路 1634

偷西瓜(SPFA运用链式前向星来记录路径+删除路径+求最短路和次短路)

Link:http://acm.nyist.net/JudgeOnline/problem.php?pid=1006 偷西瓜 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 对于农村的孩子来说最大的乐趣,莫过于和小伙伴们一块下地偷西瓜了,虽然孩子们条件不是很好,但是往往他们很聪明,他们总在计算着到达瓜田的距离,以及

林下的码路 1453
上一篇: 确定比赛名次(拓扑排序模板(比之前的模板纠正和完善了,之前的会有bug,一些题有时会wa))
下一篇: hdu5375 Gray code(简单DP)
林下的码路
博客等级 码龄12年 295粉丝 506原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林下的码路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值