AtCoder Regular Contest 099

C - Minimization

题意

题意:给出一个n的排列。每次操作可以使一段长度为K的连续子序列变成该序列的最小数。求最少几次使得整个数列全部为1。

分析

可以发现每次操作都要包含1。所以我们的答案就应该是 \(\frac{n-k}{k-1}\)。

直接\(O(1)\)求就可以了。

#include <iostream>
#include <cstdlib>
#include <cmath>
#include <string>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <set>
#include <map>
#define re register
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define MAXN 4000007
#define ll long long
#define mo 19930726
#define ls rt<<1
#define rs rt<<1|1
using namespace std;
typedef unsigned long long ull;
int n,k;
int main()
{
cin>>n>>k;
int ans=1;
n-=k;
ans+=n/(k-1);
n%=(k-1);
if(n) ans+=1;
cout<<ans;
}

D - Snuke Numbers

题意

令S(n)表示n这个数各位之和。定义一个数n合法:所有m>n,都有n/S(n)<=m/S(m)。

输出前K个合法的数。

分析

发现所有的snuke数的尾数基本都是9。

所以我们直接暴力求就可以了。

#include <iostream>
#include <cstdlib>
#include <cmath>
#include <string>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <set>
#include <map>
#define re register
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define MAXN 4000007
#define ll long long
#define mo 19930726
using namespace std;
typedef unsigned long long ull;
#define ms(arr) memset(arr, 0, sizeof(arr))
const int inf = 0x3f3f3f3f;
int n;
ll clac(ll x)
{
ll cnt=0;
while(x) cnt+=x%10,x/=10;
return cnt;
}
int main()
{
ll x=0,x1,x2,m=1;
cin>>n;
for(int i=1;i<=n;i++){
x1=x+m;x2=x+m*10;
if(x1*clac(x2)<=x2*clac(x1))
x=x1;
else x=x2,m*=10;
printf("%lld\n",x);
}
}

E - Independence

题意

题意:给出一个无向图,让你将它分成两部分使得,每部分的点互相有边相连。

最小化边的数量。

分析

建立补图。

对补图进行二分图染色。

可以发现如果补图不是二分图的话,不合法。

然后对于每个联通块的两种颜色x和y,我们要通过交换一些x和y使\(\sum^n_{i=1}x[i]\)尽量接近于\(\frac N 2\)。

背包求一下就可以了。

#include <iostream>
#include <cstdlib>
#include <cmath>
#include <string>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <set>
#include <map>
#define re register
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define MAXN 4000007
#define mo 19930726
using namespace std;
typedef unsigned long long ull;
#define ms(arr) memset(arr, 0, sizeof(arr))
const int inf = 0x3f3f3f3f;
int f[1001][1001],x[100001],y[10001],col[10001];
int n,m,a[1001][1001],cnt[100001],tot;
bool vis[100001];
struct po
{
int nxt,to;
};
po edge[1000001];
inline int read()
{
int x=0,c=1;
char ch=' ';
while((ch>'9'||ch<'0')&&ch!='-')ch=getchar();
while(ch=='-') c*=-1,ch=getchar();
while(ch<='9'&&ch>='0')x=x*10+ch-'0',ch=getchar();
return x*c;
}
inline void put_color(int u)
{
vis[u]=1;
cnt[col[u]]++;
for(re int i=1;i<=n;i++){
if(a[u][i]==0){
if(!vis[i]){
col[i]=!col[u];
put_color(i);
} else if(col[u]==col[i]){
cout<<-1;
exit(0);
}
}
}
}
int main()
{
n=read();m=read();
for(re int i=1;i<=n;i++) a[i][i]=1;
for(re int i=1;i<=m;i++){
int u=read(),v=read();
a[u][v]=a[v][u]=1;
}
for(re int i=1;i<=n;i++) {
if(!vis[i]){
cnt[0]=cnt[1]=0;
put_color(i);
tot++;
x[tot]=cnt[0];
y[tot]=cnt[1];
}
}
f[0][0]=1;
for(re int i=1;i<=tot;i++){
for(re int j=0;j<=n;j++){
if(f[i-1][j]){
f[i][j+x[i]]=1;
f[i][j+y[i]]=1;
}
}
}
int ans=n*n;
for(re int i=0;i<=n;i++){
if(f[tot][i]) ans=min(ans,i*(i-1)/2+(n-i)*(n-i-1)/2);
}
cout<<ans; }

最新文章

  1. 自建Ngrok服务与使用方法
  2. PHP中的回调函数和匿名函数
  3. Delphi Webbrowser 修改 textarea 值 百度
  4. 页面多次调用查询文章(have_posts())
  5. hdu 1160 FatMouse&#39;s Speed 解题报告
  6. Spring第13篇—–Spring整合Hibernate之声明式事务管理
  7. 关于使用SVN update时出现:E155004错误
  8. UVA 10651 Pebble Solitaire 状态压缩dp
  9. openerp binary filed import export
  10. Yukari&#39;s Birthday
  11. [个人原创]关于java中对象排序的一些探讨(三)
  12. NET基础课--Linq第二讲
  13. java正则去掉小数点后多余0
  14. Jackson基础笔记
  15. 大数据学习系列之一 ----- Hadoop环境搭建(单机)
  16. 好几个div(元素)找到最后一个
  17. 2018-2019-2 20165336 《网络对抗技术》 Exp6 信息搜集与漏洞扫描
  18. Struts中的匹配规则
  19. Python实例之抓取HTML中的数据并保存为TXT
  20. python的apidoc使用

热门文章

  1. Mininet加强版——DOT(分布式OpenFlow试验平台)
  2. 在Editplus中Dev C++配置C++的编译运行环境
  3. yum -y install epel-release
  4. IO流入门-第十一章-PrintStream_PrintWriter
  5. Java 集合框架工具类
  6. 使用数组初始化list
  7. 几分钟私人定制APP全攻略!!
  8. Python 模块之 time &amp; datetime
  9. 002-docker安装-mac上安装docker,17.06在CentOS7 64位机器上安装
  10. 用Maven构建Mahout项目实现协同过滤userCF--单机版