热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Codeforces每日一练268C+1132F+1251D

268CBeautifulSetsofPoints传送门题意:在n*m的格点图里尽量多的选点,使点之间两两距离不为整数,同时不能选(0,0).构造水题了,很明显每行列最多放一个,那




268C Beautiful Sets of Points

传送门

题意:在n*m的格点图里尽量多的选点,使点之间两两距离不为整数,同时不能选(0,0).

构造水题了,很明显每行/列最多放一个,那么最多应该放min(n,m)+1个,由于0,0不能选,直接从左上角走一个对角线即可。

#include
#define IOS std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
#define ll long long
#define maxn 200006
signed main()
{
IOS
int n,m;
cin>>n>>m;
cout< for (int i = n,j=0; i >=0&&j<=m ; --i,++j) {
cout< }
return 0;
}

1132F Clear the String

传送门

题意:每次可以删除一个只含一种字符的子串,最少多少次可以删完整个字符串。

一遇区间dp就萎

(其实这道题和HDU上一道区间很像,HDU 2476 String painter)

两道题大致思路都是枚举右端点,然后从右端点左移左端点,然后从左向右扫。这道题里我们可以开一个二维数组记录i到j的最小代价,而每个dp[i][j]可能是[i-1][j]来的,也可能是[i][j-1]来的,所以先传递之前求出的最小值,之后就是从左向右扫,如果s[k]=s[i],那么我们删k的时候就可以把i也删了,这时候的代价就是dp[i+1][k-1]+dp[k][j],扫的时候转移即可。

#include
#define IOS std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
#define ll long long
#define maxn 505
int dp[maxn][maxn];
signed main()
{
IOS
int n;
cin>>n;
string s;
cin>>s;
for (int i = 0; i for (int j = i; j dp[i][j]=j-i+1;
}
}
for (int j = 1; j for (int i = j-1; i >=0 ; --i) {
dp[i][j]=min(dp[i][j],min(dp[i][j-1]+1,dp[i+1][j]+1));
for (int k = i; k <=j ; ++k) {
if(s[k]==s[i]){
dp[i][j]=min(dp[i][j],dp[i+1][k-1]+dp[k][j]);
}
}
}
}
cout< return 0;
}

1251D Salary Changing

传送门

题意:公司里每个员工都有一个工资区间,你有s元,合理地分配工资,使得每个人工资都在相应区间并且工资的中位数较大。

首先贪心的想一想,既然要中位数最大,我们就让前n/2个人工资尽量少,那就是直接给下界,而后面如果要中位数尽量大,那就尽量做到平均分配,如果不能平均分配就给下界较大的人下界数额的薪水,而其余人平均分配。这个过程显然二分实现就可以了。

#include
#define IOS std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
#define ll long long
#define maxn 200006
struct node{
ll l,r;
}m[maxn];
bool cmp(node a,node b){
return a.l}
ll s;int n;
vector g;
int check(ll mid){
g.clear();
ll ans=0;
int cnt=0,cnt1=0,cnt2=0;
for (int i = 1; i <=n ; ++i) {
if(m[i].r cnt1++;
ans+=m[i].l;
}
else if(m[i].l>mid){
cnt2++;
ans+=m[i].l;
}else{
cnt++;
g.push_back(m[i]);
}
}
if(cnt1>n/2)return 0;
else if(cnt2>n/2)return 1;
else{
for (int i = 0; i <(n/2)-cnt1 ; ++i) {
ans+=g[i].l;
}
ans+=mid*(n/2+1-cnt2);
return ans<=s;
}
}
signed main()
{
IOS
int t;
cin>>t;
while(t--){
cin>>n>>s;
for (int i = 1; i <=n ; ++i) {
cin>>m[i].l>>m[i].r;
}
sort(m+1,m+1+n,cmp);
ll l=m[n/2+1].l,r=s/(n/2+1),mid,tmp;
while(l<=r){
mid=(l+r)/2;
if(check(mid)){
l=mid+1;
}
else r=mid-1;
}
cout< }
return 0;
}



推荐阅读
  • 本文通过C++语言实现了一个递归算法,用于解析并计算数学表达式的值。该算法能够处理加法、减法、乘法和除法操作。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • c语言二元插值,二维线性插值c语言
    c语言二元插值,二维线性插值c语言 ... [详细]
  • 网络流24题——试题库问题
    题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ... [详细]
  • hlg_oj_1116_选美大赛这题是最长子序列,然后再求出路径就可以了。开始写的比较乱,用数组什么的,后来用了指针就好办了。现在把代码贴 ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 本问题涉及在给定的无向图中寻找一个至少包含三个节点的环,该环上的节点不重复,并且环上所有边的长度之和最小。目标是找到并输出这个最小环的具体方案。 ... [详细]
  • 洛谷 P4009 汽车加油行驶问题 解析
    探讨了经典算法题目——汽车加油行驶问题,通过网络流和费用流的视角,深入解析了该问题的解决方案。本文将详细阐述如何利用最短路径算法解决这一问题,并提供详细的代码实现。 ... [详细]
  • 本题要求计算一组正整数的最小公倍数(LCM)。输入包括多组测试数据,每组数据首先给出一个正整数n,随后是n个正整数。 ... [详细]
  • 本文详细介绍了如何在循环双链表的指定位置插入新元素的方法,包括必要的步骤和代码示例。 ... [详细]
  • td{border:1pxsolid#808080;}参考:和FMX相关的类(表)TFmxObjectIFreeNotification ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 本文详细介绍了C++中的构造函数,包括其定义、特点以及如何通过构造函数进行对象的初始化。此外,还探讨了转换构造函数的概念及其在不同情境下的应用,以及如何避免不必要的隐式类型转换。 ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
author-avatar
嗷唔喵_105
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有