codeforces Gym 100735 D、E、G、H、I
http://codeforces.com/gym/100735
D题 直接暴力枚举 感觉这道题数据有点问题 为什么要先排下序才能过?不懂。。
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <vector>
using namespace std;
const int maxn = ;
const int maxm = 1e4+;
const int inf = 0x3f3f3f3f;
const double epx = 1e-;
typedef long long ll;
int n,m;
ll a[maxn];
int main()
{
while(cin>>n)
{
for(int i=; i<=n; i++)
{
scanf("%I64d",&a[i]);
}
sort(a+,a++n);
int ans=;
int visit[maxn];
memset(visit,,sizeof(visit));
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{ for(int k=;k<=n;k++)
{
if(visit[i]==&&visit[j]==&&visit[k]==&&i!=j&&j!=k&&i!=k&&a[i]+a[k]>a[j]&&a[i]+a[j]>a[k]&&a[j]+a[k]>a[i])
{
ans++;
visit[i]=,visit[j]=,visit[k]=;
}
}
}
}
printf("%d\n",ans);
}
}
E题 n*n的数字矩阵 横着 竖着 对角线 相加都等于val 可以推出 公式把矩阵 每行(或者每列)已有的数字加起来除以n-1=val 每行(每列)只有一个未知用val去减就好了。
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <vector>
using namespace std;
const int maxn = ;
const int maxm = 1e4+;
const int inf = 0x3f3f3f3f;
const double epx = 1e-;
typedef long long ll;
int n,m;
ll a[maxn][maxn];
int main()
{
cin>>n;
ll sum[maxn],zong=;
for(int i=; i<n; i++)
{
sum[i]=;
for(int j=; j<n; j++)
{
scanf("%I64d",&a[i][j]);
sum[i]+=a[i][j];
}
zong+=sum[i];
}
zong=zong/(n-);
for(int i=; i<n; i++)
{
for(int j=; j<n; j++)
{
ll x=a[i][j];
if(i==j)
x=zong-sum[i];
if(j==n-)
printf("%I64d\n",x);
else
printf("%I64d ",x);
}
}
}
G题 水题
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <vector>
using namespace std;
const int maxn = 1e5+;
const int maxm = 1e4+;
const int inf = 0x3f3f3f3f;
const double epx = 1e-;
typedef long long ll;
int n,m;
char a[maxn];
int main()
{
cin>>a;
int sum=,ans=;
int len=strlen(a);
for(int i=;i<len;i++)
{
if(a[i]=='')
ans++;
}
printf("%d\n",min(ans,len-ans));
}
H题 要用二分图最大匹配写 用dfs会T的很惨。
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <vector>
using namespace std;
const int maxn = ;
const int maxm = 1e4+;
const int inf = 0x3f3f3f3f;
const double epx = 1e-;
typedef long long ll;
int n;
char a[maxn][];
char s[maxn];
int len;
int visit[maxn];
int m[maxn][maxn];
int match[maxn];
bool found(int x)
{
for(int i=;i<=n;i++)
{
if(m[x][i]==&&visit[i]==)
{
visit[i]=;
if(match[i]==-||found(match[i]))
{
match[i]=x;
return true;
}
}
}
return false;
}
int main()
{
cin>>s>>n;
len=strlen(s);
memset(m,,sizeof(m));
memset(match,-,sizeof(match));
for(int i=; i<=n; i++)
{
for(int j=; j<; j++)
{
cin>>a[i][j];
for(int k=;k<len;k++)
{
if(a[i][j]==s[k])
m[k][i]=;
}
}
} int ans=;
for(int i=;i<len;i++)
{
memset(visit,,sizeof(visit));
if(found(i))
ans++;
}
if(ans==len)
printf("YES\n");
else
printf("NO\n");
}
I题 大数加法 Java大数类
import java.util.*;
import java.math.*;
public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
BigInteger a, b,c,a1,b1,c1;
while (cin.hasNext())
{
a = cin.nextBigInteger();
b = cin.nextBigInteger();
c = cin.nextBigInteger();
a1=a.add(a);b1=b.add(b);c1=c.add(c);
int flag=0;
if(a.add(b).compareTo(c)==0)
flag=1;
else if(a.add(c).compareTo(b)==0)
flag=1;
else if(b.add(c).compareTo(a)==0)
flag=1;
else if(a1.compareTo(b)==0)
flag=1;
else if(a1.compareTo(c)==0)
flag=1;
else if(b1.compareTo(a)==0)
flag=1;
else if(b1.compareTo(c)==0)
flag=1;
else if(c1.compareTo(b)==0)
flag=1;
else if(c1.compareTo(a)==0)
flag=1;
if(flag==1)
System.out.println("YES");
else
System.out.println("NO");
}
}
}
菜菜菜 就出了几道水题
codeforces Gym 100735 D、E、G、H、I的更多相关文章
- sed初理多行合并+sed之G、H、g、h使用+sed n/N使用说明
转载:[shell]sed处理多行合并 - seyjs - 博客园 (cnblogs.com) 文件格式 table=t1 name owner address table=t2 id text co ...
- 2019年第十届蓝桥杯【C++省赛B组】D、E、G、H、I题解
这场有几道题目思路,在之前比赛中遇到过 D. 数的分解 #枚举 题意 将\(2019\)分解成\(3\)个各不相同的正整数之和,并且每个正整数都不包含数字\(2\)和\(4\),一共有多少种分解方法? ...
- Python基础-生物信息:找出基因,生物学家使用字母A、C、T和G构成的字符串建模一个基因组。
生物信息:找出基因,生物学家使用字母A.C.T和G构成的字符串建模一个基因组.一个基因是基因组的子串,它从三元组ATG后开始在三元组TAG.TAA或TGA之前结束.此外,基因字符串的长度是3的倍数,而 ...
- Codeforces GYM 100876 J - Buying roads 题解
Codeforces GYM 100876 J - Buying roads 题解 才不是因为有了图床来测试一下呢,哼( 题意 给你\(N\)个点,\(M\)条带权边的无向图,选出\(K\)条边,使得 ...
- Codeforces Gym 101252D&&floyd判圈算法学习笔记
一句话题意:x0=1,xi+1=(Axi+xi%B)%C,如果x序列中存在最早的两个相同的元素,输出第二次出现的位置,若在2e7内无解则输出-1. 题解:都不到100天就AFO了才来学这floyd判圈 ...
- HDU 5544 Ba Gua Zhen ( 2015 CCPC 南阳 C、DFS+时间戳搜独立回路、线性基 )
题目链接 题意 : 给出一副简单图.要你找出一个回路.使得其路径上边权的异或和最大 分析 : 类似的题有 BZOJ 2115 对于这种异或最长路的题目(走过的边可以重复走) 答案必定是由一条简单路径( ...
- CodeForces Gym 100213F Counterfeit Money
CodeForces Gym题目页面传送门 有\(1\)个\(n1\times m1\)的字符矩阵\(a\)和\(1\)个\(n2\times m2\)的字符矩阵\(b\),求\(a,b\)的最大公共 ...
- 【java基础学习一】int[]、Integer[]、String[] 排序( 正序、倒叙)、去重
调用: //重复项有9.5.1.2 int[] ints = new int[]{9,4,7,8,2,5,1,6,2,5,9,1}; arrayIntTest(ints); ///////////// ...
- Windows网络驱动、NDIS驱动(微端口驱动、中间层驱动、协议驱动)、TDI驱动(网络传输层过滤)、WFP(Windows Filtering Platform)
catalog . 引言 . Windows 2000网络结构和OSI模型 . NDIS驱动 . NDIS微端口驱动编程实例 . NDIS中间层驱动编程实例 . NDIS协议层驱动编程实例 . TDI ...
随机推荐
- laravel5.5文件上传
/** * 上传文件 * @param Request $request * @return array */ public function upload(Re ...
- 如何通过SecureCRT作为客户端连接Linux服务器
主机cmd ping虚拟机失败 打开计算机-管理-服务,找到所有以VMare开头的服务,右键点击启动即可,此时主机即可ping通虚拟机 可ping通之后,在主机cmd窗口输入 ssh root@192 ...
- 如何看Spring源码
想要深入的熟悉了解Spring源码,我觉得第一步就是要有一个能跑起来的极尽简单的框架,下面我就教大家搭建一个最简单的Spring框架,而且是基于Java Config形式的零配置Spring框架. 首 ...
- ReactJS-1-基本使用
JSX使用 一.为什么使用JSX?React的核心机制之一就是虚拟DOM:可以在内存中创建的虚拟DOM元素.但是用js创建虚拟dom可读性差,于是创建了JSX,继续使用HTML代码创建dom,增加可读 ...
- 《基于Node.js实现简易聊天室系列之引言》
简述:这个聊天室是基于Node.js实现的,完成了基本的实时通信功能.在此之前,对node.js和mongodb一无所知,但是通过翻阅博客,自己动手基本达到了预期的效果.技术,不应该是闭门造车,而是学 ...
- 谈谈Java中的集合
对于集合类,主要需要掌握的就是它的内部结构,以及遍历集合的迭代模式. 接口:Collection Collection是最基本的集合接口,一个Collection代表一组Object,即Collect ...
- 详解 pcap_findalldevs_ex
pcap是packet capture的缩写.意为抓包. 功能:查找所有网络设备 原型:int pcap_findalldevs_ex(char* source, struct pcap_rmtau ...
- java线程学习1
java实现多线程有三种方式:继承Thread类,重写run方法,启动使用start:实现runnable接口,重写run方法:实现callable接口,重写call方法(可以有返回值,也可以抛出异常 ...
- PHP笔录(韩顺平)
这里记录下韩顺平视频学习记录 http://www.php.cn/code/11753.html
- java将很长的一条sql语句,自动换行输出(修改版)2019-06-01(bug未修复)
package org.jimmy.autosearch2019.test; import java.util.HashMap; public class AutoLinefeedSql { publ ...