首页 > 其他分享 >Week 6

Week 6

时间:2023-10-16 18:15:04浏览次数:31  
标签:Week std int cin using include 贪心

Week 6 贪心算法

P1199 [NOIP2010 普及组] 三国游戏

  • 知识点:贪心、博弈题

  • 思路:计算机的选择是贪心的,所以玩家和计算机都不可能选到默契值最大的武将组合。

小涵赢的情况:在第二次选将时可以拿到第一次选中的武将的次大默契值组合。

#include<bits/stdc++.h>
using namespace std;
int a[501][501],n;
int main()
{
	int m=0;
    cin>>n;
    for(int i=1;i<=n;i++) {
        for(int j=i+1;j<=n;j++) {
            cin>>a[i][j];
            a[j][i]=a[i][j];
        }
    }
    for(int i=1;i<=n;i++)
    {
        sort(a[i]+1,a[i]+n+1);
        if(a[i][n-1] > m) 
        m= a[i][n-1];
    }
    cout<<"1"<<endl<<m;
    return 0;
}

P1007 独木桥

  • 思路:和之前写过的蚂蚁很像,两士兵碰头调转可以看成直接穿过士兵往前走(因为每个士兵没有差别

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
    	int l,n,ma=0,mi=0;
    	cin>>l>>n;
    	while(n--)
    	{
    		int x;
    		cin>>x;
    		ma=max(ma,max(x,l+1-x));
    		mi=max(mi,min(x,l+1-x));
    	}
    	cout<<mi<<" "<<ma<<endl;
    	return 0;
    }
    

P1223 排队接水

  • 知识点:贪心算法

  • 思路:数组从小到大排序~

#include<bits/stdc++.h>
using namespace std;
const int N=1005;
struct sz{
	int t,num;
};
bool cmp(sz x, sz y)
{
	return x.t <y.t;
}
int main()
{
	int n;
	double sum=0;
	sz a[N];
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		a[i].num =i;
		cin>>a[i].t;
	}
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++)
	cout<<a[i].num <<" ";
	cout<<endl;
	for(int i=1;i<=n;i++)
	{
		int j=n-i;
		sum+=a[i].t *j;
	}
	printf("%.2f",sum/n);
	return 0;
}

P1090 [NOIP2004 提高组] 合并果子

  • 考点:贪心+优先队列
  • 思路:每次合并最小的两堆即可
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,ans=0;
	priority_queue<int,vector<int>,greater<int>> a;
	cin>>n;
	while(n--)
	{
		int x;
		cin>>x;
		a.push(x);
	}
	while(1)
	{
		int x=a.top();
		a.pop();
		if(a.empty())
		break;
		x+=a.top();
		a.pop();
		ans+=x;
		a.push(x);
	}
	cout<<ans<<endl;
	return 0;
}

标签:Week,std,int,cin,using,include,贪心
From: https://www.cnblogs.com/xiaoyangii/p/17768012.html

相关文章

  • week 3
    Week3线性表P3613【深基15.例2】寄包柜分析:此题直接用数组得1e9个格子,内存要爆知识点map容器:find()返回数据所在位置的迭代器insert()插入pair迭代器:iterator,用于遍历容器元素(类似指针),输出*迭代器打印元素的值主要思路:vector容器嵌套map容器柜子数i......
  • week16
    Week16目录Week16div2代码源每日一题501RSA503A-B数对504数位计算505新国王游戏506完美数507Lusir的游戏601BFS练习1(广度优先)60201序列2603整除光棍604碰撞刷题P4913二叉树深度div2代码源每日一题501RSA质数正常判断即可A*B大于1的整数的平方的整数倍......
  • week7
    Week7动态规划P1048[NOIP2005普及组]采药思路:跟背包问题的思路差不多,for循环遍历所有情况,把选该草药和不选该草药的价值情况比较大小,选大的。#include<bits/stdc++.h>usingnamespacestd;constintN=1005;intw[N],v[N];//草药的时间和价值intres[N][N];//前i......
  • week5
    Week5P8604[蓝桥杯2013国C]危险系数知识点:图的vector存储和+dfs思路:用一个数组来记录每个节点被访问的次数,如果起点和终点之间有点的访问次数和终点的访问次数一样,那么它就是关键点。#include<bits/stdc++.h>usingnamespacestd;constintN=10005;intm,n,u,v,to......
  • shctf week1 wp
    REez_asm程序的逻辑大概是把输入的数据flag按字节^0x1E-0x0A一遍,然后输出,所以只需要置反一下先+0x0A然后再^0x1e就能求出flag.text:0000000000401566loc_401566:;CODEXREF:main+65↓j.text:0000000......
  • Week 5
    week5本周工作是搭建项目框架:前后端配置完成,可以本地启动mybatis多数据源配置成功一个mapper对应多个mapper,根据配置选择sql建库表语句改造,sqlserver文件夹xml的sql语法改造数据库切换到sqlserver,并在页面上完成所有页面测试页面动态配置定时任务本周未进行知识补齐学......
  • Linux_JXNUSevenWeek_vi编辑器
    frompixivVI编辑器入门使用案例移动编辑文本编辑这里o的作用是回到原来光标的位置,其一个作用如:当我选择了灰色这一段内容,现在我的光标在其下面,现在我想要还要选择其上面一段内容,这个时候可以按o,然后光标回到原来的地方,现在可以按k,选择上面一段内容其......
  • Week 4
    week4进阶知识设计模式行为型设计模式模板方法模式模板方法模式是一种行为型设计模式,它在一个抽象类中定义了一个算法的骨架,将一些步骤的具体实现延迟到子类中。这样使得子类可以在不改变该算法结构的情况下,重新定义算法中的某些步骤。首先,我们创建一个抽象类,定义算法的......
  • [Leetcode Weekly Contest]365
    链接:LeetCode[Leetcode]2873.有序三元组中的最大值I给你一个下标从0开始的整数数组nums。请你从所有满足i<j<k的下标三元组(i,j,k)中,找出并返回下标三元组的最大值。如果所有满足条件的三元组的值都是负数,则返回0。下标三元组(i,j,k)的值等于(nums[i]......
  • CS50x-week7 SQL
    SQL是一种处理数据的编程语言先看看使用python是如何读入csv数据的importcsvwithopen("phonebool.csv","r")asfile:reader=csv.reader(file)forrowinreader:print(row[1])需要注意的是row[1]指的是每一行的第二个数据importcsvwithopen("p......