贪心题整理

水题

1.P1056 排座椅

直通

思路:

  为使得上课时交头接耳的学生的对数最少,所以一条道路需要隔开尽可能多的学生,所以用一个排序就可以搞定

  但是要注意的是,需要按顺序输出!!!!

  这就是10分跟100分的差别!!!

上代码:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;

const int M = 1001;
int m,n,k,l,d;
struct node {
    int id,num;
} col[M],row[M];

int cmp(node a,node b) {
    return a.num > b.num;
}

int cmp2(node a,node b) {
    return a.id < b.id;
}

int main() {
    scanf("%d%d%d%d%d",&m,&n,&k,&l,&d);
    for(int i=1,x,y,x2,y2,cun; i<=d; i++) {
        scanf("%d%d%d%d",&x,&y,&x2,&y2);
        if(x==x2) {
            cun=min(y,y2);
            col[cun].id=cun;
            col[cun].num++;
        }
        else {
            cun=min(x,x2);
            row[cun].id=cun;
            row[cun].num++;
        }
    }
    sort(col+1,col+n+1,cmp);
    sort(row+1,row+m+1,cmp);
    /***********************/
    /*--------重要!--------*/ 
    /*-----一个零的差别-----*/
    sort(col+1,col+l+1,cmp2);
    sort(row+1,row+k+1,cmp2);
    /***********************/
    for(int i=1; i<=k; i++) printf("%d ",row[i].id);
    printf("\n");
    for(int i=1; i<=l; i++) printf("%d ",col[i].id);
    return 0;
}
View Code

2.P1208 [USACO1.3]混合牛奶 Mixing Milk

直通

思路:

  从单价最低的开始选,能选多少选多少,典型的贪心嘛~

上代码:

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

int n,m,ans,now,cnt;
struct node {
    int w,pro;
    bool operator < (const node &qwq) const {
        return w < qwq.w;
    }
}a[5005];

int main() {
    scanf("%d%d",&n,&m);
    for(int i=0; i<m; i++) scanf("%d%d",&a[i].w,&a[i].pro);
    sort(a,a+m);
    while(now<n) {
        int tmp=0;
        now+=a[cnt].pro;
        if(now>n) tmp=now-n; //选多了
        ans+=a[cnt].w*(a[cnt].pro-tmp);
        cnt++;
    }
    printf("%d",ans);
    return 0;
}
View Code

3.P1803 凌乱的yyy

直通

思路:

  典型活动安排问题:按照右端点排序,能选就选

坑点:

  会有左端点为0的情况,所以e[i].op>=cur才可以

上代码:

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

const int N = 1000001;
int n,ans;
struct node {
    int op,ed;
    bool operator < (const node &qwq) const {
        return ed < qwq.ed ;
    }
}e[N];

int main() {
    scanf("%d",&n);
    for(int i=0; i<n; i++) scanf("%d%d",&e[i].op,&e[i].ed);
    sort(e,e+n);
    int cur=0;
    for(int i=0; i<n; i++)
        if(e[i].op>=cur) cur=e[i].ed,ans++;
    printf("%d",ans);
    return 0;
}
View Code

4.P1094 纪念品分组

直通

思路:

  先排个序,然后从大的逆序开始选,如果能够组成2人组,那么n--,同时i++,j--;

  如果不能选,直接j--;

  最后输出ans即可

上代码:

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

const int M = 30003;
int w,n,a[M];

int main() {
    scanf("%d%d",&w,&n);
    for(int i=0; i<n; i++) scanf("%d",&a[i]);
    sort(a,a+n);
    int l=0,r=n-1;
    while(l<r) {
        if(a[l]+a[r]<=w) n--,l++,r--;
        else r--;
    }
    printf("%d",n);
    return 0;
}
View Code

 

转载于:https://www.cnblogs.com/zxqxwnngztxx/p/7788409.html

资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 在 IT 领域,Web 服务是一种借助网络实现通信的软件系统,通常以 XML 作为数据交换格式。WSDL 是一种用于描述 Web 服务的标准语言,它明确了服务的位置、接口以及调用方式等关键信息。本文将深入探讨如何依据 WSDL 地址调用 WebService 接口,并介绍相关工具的应用。 首先,WSDL 文件本质上是一个 XML 文档,详细规定了服务提供方与消费方的交互细节,涵盖服务地址、消息格式、操作以及服务契约等内容。借助 WSDL,开发者能够清楚知晓如何与 Web 服务进行交互,包括输入输出消息的具体结构。 其次,SOAP 是 Web 服务常用的传输协议,它在 HTTP、SMTP 等基础协议之上对 XML 消息进行封装。WSDL 中定义的服务操作一般对应于 SOAP 消息中的方法。 要调用 Web 服务,开发者通常需要一个客户端代理类,该类封装了与服务交互的所有逻辑。当下多数开发环境都提供了从 WSDL 自动生成代理类的工具。比如在 Java 环境中,可利用 Apache CXF、Axis2 等库,或者借助 Maven 的 wsimport 插件来实现。在 .NET 环境下,Visual Studio 能够直接从 WSDL 生成服务引用。 生成代理类后,调用 Web 服务就如同调用本地方法一样便捷。以 Java 为例,创建代理类实例后,即可调用其方法并传递相应参数。在 .NET 中,创建服务代理对象后,也能通过它来调用服务方法。 文中提到的“源码 工具”标签,可能涉及一些协助开发者处理 WSDL 的工具。例如,SoapUI 是一款广受欢迎的测试工具,可用于测试 Web 服务,包括基于 WSDL 创建测试用例。此外,wsdl2java 和 wsdl2dotnet 分别是 Java
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值