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的更多相关文章

  1. AGC003[BCDEF]题解

    2018-12-28 有点累EF明天再写叭=v= 2018-12-29 update EF B - Simplified mahjong 可以注意到 一段连续的非0序列都可以凑出 就是显然%2=0的可 ...

  2. AGC002[BCDEF]题解

    F是计数于是就做(kan ti jie)了= = B - Box and Ball 模拟一下 每个盒子开一个d表示有的球数 可能存在红球的打个标记 传递一下就行了 #include<cstdio ...

  3. 正则表达式在iOS中的运用

    1.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地用极简单的方式 ...

  4. iOS中使用正则

    一.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地用极简单的方式 ...

  5. redis 操作string 的测试

    1>set  set name zhangsan :OK get name: zhangsan set name lisi:OK get name: lisi   2> setnx 如果存 ...

  6. AJXA 入门 前端界面操作(例题)

    AJXA  处理界面  与之前的 嵌入 PHP 相比   不用  频繁的 刷新界面 mysql 链接数据库封装类 <?php class DBDA { public $host="lo ...

  7. Objective-C精选字符串处理方法

    无论是什么编程语言对字符串的操作是少不了的,对复杂的字符串的分析和操作我们可以用正则表达式来达到我们的目的.简单的字符串处理我们可以借助OC中NSString封装好的字符串处理方法,不过前提是你得了解 ...

  8. Javascript 字符串常用操作方法

    1.字符串转换 /* 你可以将一个数字,布尔值,或一个字符串对象转换为字符串 */ var num= 18; var str1 = num.toString(); //'18' var str2 = ...

  9. iOS - Regex 正则表达式

    1.Regex 定义 正则表达式又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为 regex.regexp 或 RE),计算机科学的一个概念.正则表达式使用单个 ...

随机推荐

  1. 如何快速上手一个新技术之vue学习经验

    碰到紧急项目挪别人的vue项目过来直接改,但是vue是18年初看过一遍,18年底再来用,早就忘到九霄云外了,结果丢脸的从打开vue开始学,虽然之前在有道云笔记做了很多记录,然后没有系统整理.所以借这次 ...

  2. 【提取元素的值 】【追加文本append】【删除文本remove】【class的操作】【读取元素的宽度,高度】

    1.取值 $("#test").text()                                    //取id=test里面的文字 $("#test&qu ...

  3. android gradle tools 3.X中dependencies, implementation和compile区别

    在3.0版本中,compile 指令被标注为过时方法,而新增了两个依赖指令,一个是implement 和api,这两个都可以进行依赖添加,但是有什么区别呢? api 指令 完全等同于compile指令 ...

  4. android checkBox选中与取消

    checkView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO ...

  5. python set 使用

    创建集合set python set类是在python的sets模块中,大家现在使用的python2.7.x中,不需要导入sets模块可以直接创建集合.>>>set('boy')se ...

  6. go 多维度 Map 的数据存取

    多维度 Map 的数据存取 一维情况下的 map 做存取很简单,而二维以上的情况就得小心了. 先来看一个例子: m:=make(map[string]map[string]int)   c:=make ...

  7. 扒一扒JVM的垃圾回收机制,下次面试你准备好了吗

      相信和小编一样的程序猿们在日常工作或面试当中经常会遇到JVM的垃圾回收问题,有没有在夜深人静的时候详细捋一捋JVM垃圾回收机制中的知识点呢?没时间捋也没关系,因为小编接下来会给你捋一捋. 一. 技 ...

  8. Zynq-Linux移植学习笔记之27UIO机制响应外部中断实现【转】

    转自:https://blog.csdn.net/zhaoxinfan/article/details/80285150 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...

  9. python的wrapt模块实现装饰器

    wrapt是一个功能非常完善的包,用于实现各种你想到或者你没想到的装饰器.使用wrapt实现的装饰器你不需要担心之前inspect中遇到的所有问题,因为它都帮你处理了,甚至inspect.getsou ...

  10. Bootstrap3.0入门学习系列教程

    可视化布局:http://www.runoob.com/try/bootstrap/layoutit/ 1.浏览器兼容性:你可以去看看大牛的一篇文章http://www.cnblogs.com/lhb ...