cf1133 bcdef
b所有数模k,记录出现次数即可
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k,a[];
int cnt[]={};
cin>>n>>k;
for(int i=;i<=n;i++)cin>>a[i];
for(int i=;i<=n;i++)
cnt[a[i]%k]++;
int ans=cnt[]/;
int l=,r=k-;
while(l<r){
ans+=min(cnt[l],cnt[r]);
l++,r--;
}
if(l==r)
ans+=cnt[l]/;
cout<<ans*<<endl;
}
c尺取
#include<bits/stdc++.h>
using namespace std;
#define maxn 200005
int cmp(int a,int b){return a<b;
}
int main(){
int n,a[maxn];
scanf("%d",&n);
for(int i=;i<=n;i++)
cin>>a[i];
sort(a+,a++n);
int l=,r=,ans=; while(){
r++;
if(r>n)break;
if(a[r]-a[l]<=)ans=max(ans,r-l+);
if(a[r]-a[l]>)l++;
}
cout<<ans;
return ;
}
d,用map<pair<ll,ll>,int>来统计二元组<a[i]/gcd,b[i]/gcd>的最大出现次数即可,注意特判
#include<bits/stdc++.h>
using namespace std;
#define maxn 200005
#define ll long long
ll n,a[maxn],b[maxn];
map<pair<ll,ll>,ll>mp; int main(){
cin>>n;
for(int i=;i<=n;i++)cin>>a[i];
for(int j=;j<=n;j++)cin>>b[j];
ll cnt=,ans=,x=;
for(int i=;i<=n;i++){
if(a[i]== && b[i]==)cnt++;//权是0
else if(a[i]== && b[i]!=) continue;//无解
else if(b[i]==)x++; //c必须是0
else {
ll tmp=__gcd(a[i],b[i]);
pair<ll,ll> p=make_pair(b[i]/tmp,a[i]/tmp);
mp[p]++;ans=max((ll)ans,mp[p]);
}
} if(cnt==n)cout<<cnt;
else cout<<max(x+cnt,ans+cnt);
}
e,线性dp
/*
l[i]表示选择以第i个为最大能力成员的团队中能力最小的成员的下标是什么
阶段k,状态j表示选择第j个成员作为第k组能力最大的成员
那么第k组的范围就是[l[j],j],dp[k][j]=len[j]+max(dp[k-1][l[j]-i]),i小于l[j]即可)
*/
#include<bits/stdc++.h>
using namespace std;
#define maxn 5005
int n,k,dp[maxn][maxn],a[maxn],l[maxn];
int main(){
cin>>n>>k;
for(int i=;i<=n;i++)cin>>a[i];
sort(a+,a++n);a[]=-;
for(int i=;i<=n;i++)
l[i]=lower_bound(a+,a++n,a[i]-)-a;
int ans=;
for(int i=;i<=k;i++){
int tmp[maxn]={};
for(int j=;j<=n;j++)
tmp[j]=max(tmp[j-],dp[i-][j]); for(int j=i;j<=n;j++){
dp[i][j]=(j-l[j]+)+tmp[l[j]-];
ans=max(dp[i][j],ans);
}
}
cout<<ans<<endl;
}
f1找最大点度数最大的生成树
#include<bits/stdc++.h>
using namespace std;
#define maxn 200005
struct Edge{int to,nxt;}edge[maxn<<];
int head[maxn],tot;
void init(){memset(head,-,sizeof head);tot++;}
void addedge(int u,int v){
edge[tot].to=v;edge[tot].nxt=head[u];head[u]=tot++;
} int n,m,degree[maxn],vis[maxn];
void dfs(int u){
for(int i=head[u];i!=-;i=edge[i].nxt){
int v=edge[i].to;
if(vis[v])continue;
else {
vis[v]=;
cout<<u<<" "<<v<<endl;
dfs(v);
}
}
}
int main(){
cin>>n>>m;
init();
for(int i=;i<=m;i++){
int u,v;
cin>>u>>v;
degree[u]++;
degree[v]++;
addedge(u,v);
addedge(v,u);
}
int id,Max=;
for(int i=;i<=n;i++)
if(degree[i]>Max){
Max=degree[i];
id=i;
} vis[id]=;
for(int i=head[id];i!=-;i=edge[i].nxt)
vis[edge[i].to]=;
for(int i=head[id];i!=-;i=edge[i].nxt){
int v=edge[i].to;
cout<<id<<" "<<v<<endl;
dfs(v);
}
}
f2
/*
给定一个无向连接图,求出1的度为d的生成树
删掉结点1,对剩下结点染色
不成立的情况:
1的度小于d
联通块大于d
1能连上的联通块小于d
*/
#include<bits/stdc++.h>
#include<vector>
using namespace std;
#define maxn 200005
struct Edge{int to,nxt;}edge[maxn<<];
int head[maxn],c[maxn],cnt,d,totc,n,m;
void init(){
memset(head,-,sizeof head);
totc=;
}
void addedge(int u,int v){
edge[totc].to=v;edge[totc].nxt=head[u];head[u]=totc++;
}
void dfs(int u){
c[u]=cnt;
for(int i=head[u];i!=-;i=edge[i].nxt){
int v=edge[i].to;
if(c[v]||v==)continue;
dfs(v);
}
} int vis[maxn]; struct A{int u,v;
}ans[maxn];
void dfs1(int u){
for(int i=head[u];i!=-;i=edge[i].nxt){
int v=edge[i].to;
if(vis[v])continue;
vis[v]=;
cout<<u<<" "<<v<<'\n';
dfs1(v);
}
} int main(){
cin>>n>>m>>d;
init();
int tmp=,flag[maxn]={};
for(int i=;i<=m;i++){
int u,v;
cin>>u>>v;
if(v==)swap(u,v);
if(u==)flag[v]=,tmp++;
addedge(u,v);
addedge(v,u);
}
if(tmp<d){
puts("NO");
return ;
} for(int i=;i<=n;i++)
if(c[i]==)
++cnt,dfs(i);
if(cnt>d){
puts("NO");
return ;
} int tot=,link[maxn]={};
for(int i=;i<=n;i++){
if(flag[i] && link[c[i]]==){
ans[++tot].u=;
//cout<<tot<<'\n';
ans[tot].v=i;
link[c[i]]=;
vis[i]=;
}
} //把剩下的度用完
for(int i=;i<=n;i++){
if(tot==d)break;
if(flag[i] && vis[i]==){
//cout<<tot<<'\n';
ans[++tot].u=;
ans[tot].v=i;
vis[i]=;
}
} if(tot<d){
puts("NO");
return ;
}
for(int i=;i<=cnt;i++)
if(link[i]==){
puts("NO");
return ;
} puts("YES");
for(int i=;i<=tot;i++)
cout<<ans[i].u<<" "<<ans[i].v<<'\n'; vis[]=;
for(int u=;u<=n;u++)
if(vis[u]){
dfs1(u);
}
}
cf1133 bcdef的更多相关文章
- AGC003[BCDEF]题解
2018-12-28 有点累EF明天再写叭=v= 2018-12-29 update EF B - Simplified mahjong 可以注意到 一段连续的非0序列都可以凑出 就是显然%2=0的可 ...
- AGC002[BCDEF]题解
F是计数于是就做(kan ti jie)了= = B - Box and Ball 模拟一下 每个盒子开一个d表示有的球数 可能存在红球的打个标记 传递一下就行了 #include<cstdio ...
- 正则表达式在iOS中的运用
1.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地用极简单的方式 ...
- iOS中使用正则
一.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地用极简单的方式 ...
- redis 操作string 的测试
1>set set name zhangsan :OK get name: zhangsan set name lisi:OK get name: lisi 2> setnx 如果存 ...
- AJXA 入门 前端界面操作(例题)
AJXA 处理界面 与之前的 嵌入 PHP 相比 不用 频繁的 刷新界面 mysql 链接数据库封装类 <?php class DBDA { public $host="lo ...
- Objective-C精选字符串处理方法
无论是什么编程语言对字符串的操作是少不了的,对复杂的字符串的分析和操作我们可以用正则表达式来达到我们的目的.简单的字符串处理我们可以借助OC中NSString封装好的字符串处理方法,不过前提是你得了解 ...
- Javascript 字符串常用操作方法
1.字符串转换 /* 你可以将一个数字,布尔值,或一个字符串对象转换为字符串 */ var num= 18; var str1 = num.toString(); //'18' var str2 = ...
- iOS - Regex 正则表达式
1.Regex 定义 正则表达式又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为 regex.regexp 或 RE),计算机科学的一个概念.正则表达式使用单个 ...
随机推荐
- MySql cmd下的学习笔记 —— 有关建立数据库的操作(连接Mysql,建立数据库,删除数据库等等)
(01) 连接数据库 mysql -uroot -p 之后输入密码 ******.(由于我的密码设置的是111,所以输入的是111) (02) 退出数据库 exit (03) 查看数据库 show d ...
- 微信支付-H5网页支付开通流程
简介 H5 支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付.主要用于触屏版的手机浏览器请求微信支付的场景.可以方便的从外 ...
- v2v-VMware/VSphere中虚机离线迁移至openstack平台
先决条件 exsi到openstack的迁移,分为两种,一种是静态迁移,另一种是在线迁移. 静态迁移(offline migration)也叫做常规迁移,离线迁移.在迁移之前将虚拟机暂停,同时拷贝虚拟 ...
- openstack Q版部署-----Cinder云存储服务(10)
一.cinder介绍 一般 cinder-api 和 cinder-scheduler 安装在控制节点上, cinder-volume 安装在存储节点上. 二.数据库配置 # 在任意控制节点创建数据库 ...
- 2017-2018-2 20165221实验二《Java面向对象程序设计》实验报告
JAVA实验二报告 课程:Java程序设计 姓名:谭笑 学号:20165221 实验时间:2018.4.13--2018.4.15 实验2--1 实验内容 实现百分制成绩转成"优.良.中.及 ...
- C++11 override 和 final 关键字
C++11之前,一直没有继承控制关键字.禁用一个类的进一步衍生是可能的但也很棘手.为避免用户在派生类中重载一个虚函数,你不得不向后考虑. C++ 11添加了两个继承控制关键字:override和fin ...
- 使用@JsonView注解控制返回的Json属性
我也是刚看到原来还可以这么玩,但是我还是习惯使用Dto,我总感觉这样做的话实体类耦合程度有点高.还是记录以下,万一今后用到了呢 ⒈在实体类中使用接口来声明该实体类的多个视图. ⒉在实体类的属性get方 ...
- 2018 Multi-University Training Contest 1 杭电多校第一场
抱着可能杭电的多校1比牛客的多校1更恐怖的想法 看到三道签到题 幸福的都快哭出来了好吗 1001 Maximum Multiple(hdoj 6298) 链接:http://acm.hdu.edu. ...
- 【转】Python模块学习 - fnmatch & glob
[转]Python模块学习 - fnmatch & glob 介绍 fnmatch 和 glob 模块都是用来做字符串匹配文件名的标准库. fnmatch模块 大部分情况下使用字符串匹配查找特 ...
- rtl8201以太网卡调试【转】
转自:https://blog.csdn.net/wenjin359/article/details/82893122 参考博客:https://blog.csdn.net/zpzyf/article ...