Codeforces 903 绝对值1e19longdouble算贡献 汉明距离交换两项是否可行
A
/*Huyyt*/
#include<bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define pb push_back
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int dir[][] = {{, }, {, }, {, -}, { -, }, {, }, {, -}, { -, -}, { -, }};
const int mod = 1e9 + ;
const int gakki = + + + + 1e9;
const int N = ( << ) + ;
int main()
{
int T;
cin >> T;
while (T--)
{
int flag=;
int n;
cin >> n;
for (int i = ; i <= n / ; i++)
{
if ((n - * i) % == )
{
cout << "YES" << endl;
flag=;
break;
}
}
if(!flag)
{
cout<<"NO"<<endl;
}
} return ;
}
B
/*Huyyt*/
#include<bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define pb push_back
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int dir[][] = {{, }, {, }, {, -}, { -, }, {, }, {, -}, { -, -}, { -, }};
const int mod = 1e9 + ;
const int gakki = + + + + 1e9;
const int N = ( << ) + ;
string ans[];
int cnt = ;
int main()
{
ios_base::sync_with_stdio();
cin.tie();
int h1, a1, c1;
int h2, a2;
cin >> h1 >> a1 >> c1;
cin >> h2 >> a2;
while (h2 > )
{
if (h2 - a1 <= )
{
ans[++cnt] = "STRIKE";
h2 -= a1;
continue;
}
if (h1 - a2 <= )
{
ans[++cnt] = "HEAL";
h1 += c1-a2;
continue;
}
ans[++cnt] = "STRIKE";
h1 -= a2;
h2 -= a1;
}
cout << cnt << endl;
for (int i = ; i <= cnt; i++)
{
cout << ans[i] << endl;
}
return ;
}
C
/*Huyyt*/
#include<bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define pb push_back
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int dir[][] = {{, }, {, }, {, -}, { -, }, {, }, {, -}, { -, -}, { -, }};
const int mod = 1e9 + ;
const int gakki = + + + + 1e9;
const int N = 5e3 + ;
int vis[N];
int num[N];
int visit[N];
int main()
{
ios_base::sync_with_stdio();
cin.tie();
int n;
cin >> n;
int maxn = -;
for (int i = ; i <= n; i++)
{
cin >> num[i];
maxn = max(maxn, num[i]);
}
sort(num + , num + + n);
for (int i = ; i <= n; i++)
{
if (visit[i])
{
continue;
}
int cur = num[i];
int pre = i;
vis[pre] = ;
visit[pre] = ;
for (int j = i + ; j <= n; j++)
{
if (num[j] > cur && !visit[j])
{
visit[j] = ;
vis[pre] = ;
cur = num[j];
pre = j;
vis[pre] = ;
}
}
}
int anser = ;
for (int i = ; i <= n; i++)
{
if (vis[i])
{
anser++;
}
}
cout << anser << endl;
return ;
}
D
会爆long long 要用long double
/*Huyyt*/
#include<bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define pb push_back
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int dir[][] = {{, }, {, }, {, -}, { -, }, {, }, {, -}, { -, -}, { -, }};
const int mod = 1e9 + ;
const int gakki = + + + + 1e9;
const int N = 2e5 + ;
map<double, double> mp;
long double num[N];
long double now;
long double sheng;
int main()
{
ios_base::sync_with_stdio();
cin.tie();
long double sum = ;
long double anser = ;
int n;
cin >> n;
for (int i = ; i <= n; i++)
{
cin >> num[i];
sum += num[i];
mp[num[i]]++;
}
for (int i = ; i < n; i++)
{
sum -= num[i - ];
if (i != )
{
mp[num[i - ]]--;
}
sheng = n - i + - mp[num[i] - ] - mp[num[i] + ];
anser += sum - mp[num[i] - ] * (num[i] - ) - mp[num[i] + ] * (num[i] + ) - sheng * num[i];
}
cout << fixed << setprecision() << anser << endl;
return ;
}
JAVA版
import java.io.OutputStream;
import java.io.PrintWriter; import java.math.BigInteger;
import java.util.*;; public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
OutputStream outputStream = System.out;
PrintWriter out = new PrintWriter(outputStream); SortedMap<Long, Long>ma = new TreeMap<>() ;
BigInteger result = new BigInteger("");
BigInteger currentSum = new BigInteger (""); int n = in.nextInt();
for (int i = ; i < n; i++) {
long x = in.nextInt(); long count = i - (ma.getOrDefault(x - ,0L) + ma.getOrDefault(x,0L) + ma.getOrDefault(x + ,0L));
long toRemove = (x - ) * ma.getOrDefault(x - ,0L) + (x)* ma.getOrDefault(x,0L) + (x + ) * ma.getOrDefault(x + ,0L);
BigInteger valueY = currentSum.subtract(new BigInteger(String.valueOf(toRemove))); result = result.add(new BigInteger(String.valueOf((x * count)))).subtract(valueY); currentSum = currentSum.add(new BigInteger(String.valueOf(x)));
ma.put(x, ma.getOrDefault(x,0L)+);
} out.println(result.toString()); in.close();
out.close();
}
}
E
题意:
给你K个长度为N的字符串 每个字符串可以交换任意两项一次 问你这N个字符串能不能最后都变为一个字符串
解:
以第一个字符串为主串 N枚举每个其他串 测出与其他串的汉明距离
然后K2枚举交换的位置 再N枚举其他串 看交换后是否满足
满足有两种情况 1.第一个字符串有两个相同字母 交换后的汉明距离为0 2.交换后的汉明距离为2
当当前交换的两项可以满足所有其他串时 交换这两项后的字符串就是目标串
/*Huyyt*/
#include<bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int dir[][] = {{, }, {, }, {, -}, { -, }, {, }, {, -}, { -, -}, { -, }};
const int mod = 1e9 + , gakki = + + + + 1e9;
const int MAXN = 1e5 + , MAXM = 1e5 + , N = 1e4 + ;
const int MAXQ = ;
int to[MAXM << ], nxt[MAXM << ], Head[MAXN], tot = ;
inline void addedge(int u, int v)
{
to[++tot] = v;
nxt[tot] = Head[u];
Head[u] = tot;
}
inline void read(int &v)
{
v = ;
char c = ;
int p = ;
while (c < '' || c > '')
{
if (c == '-')
{
p = -;
}
c = getchar();
}
while (c >= '' && c <= '')
{
v = (v << ) + (v << ) + c - '';
c = getchar();
}
v *= p;
}
string st[];
int num[][];
int hmdis[];
int n, k;
int flag = ;
int main()
{
ios_base::sync_with_stdio();
cin.tie();
cin >> k >> n;
for (int i = ; i <= k; i++)
{
cin >> st[i];
}
for (int i = ; i < n; i++)
{
num[][st[][i] - 'a']++;
if (num[][st[][i] - 'a'] > )
{
flag = ;
}
}
for (int i = ; i <= k; i++)
{
mem(num[], );
for (int j = ; j < n; j++)
{
num[][st[i][j] - 'a']++;
if (st[][j] != st[i][j])
{
hmdis[i]++;
}
}
for (int j = ; j <= ; j++)
{
if (num[][j] != num[][j])
{
cout << - << endl;
return ;
}
}
}
for (int i = ; i < n - ; i++)
{
for (int j = i + ; j < n; j++)
{
int now = ;
for (int w = ; w <= k; w++)
{
int cnt = hmdis[w];
if (st[][i] == st[w][i])
{
cnt++;
}
if (st[][j] == st[w][j])
{
cnt++;
}
if (st[][i] == st[w][j])
{
cnt--;
}
if (st[][j] == st[w][i])
{
cnt--;
}
if (cnt == || (cnt == && flag))
{
now++;
}
else
{
break;
}
}
if (now == k)
{
swap(st[][i], st[][j]);
cout << st[] << endl;
return ;
}
}
}
cout << - << endl;
return ;
}
Codeforces 903 绝对值1e19longdouble算贡献 汉明距离交换两项是否可行的更多相关文章
- Codeforces Round #289 (Div. 2, ACM ICPC Rules) E. Pretty Song 算贡献+前缀和
E. Pretty Song time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- CodeForces - 1228C(质因数分解+贡献法)
题意 https://vjudge.net/problem/CodeForces-1228C 首先先介绍一些涉及到的定义: 定义prime(x)表示x的质因子集合.举例来说,prime(140)={2 ...
- 如何交换两个等长整形数组使其数组和的差最小(C和java实现)
1. 问题描述: 有两个数组a,b,大小都为n,数组元素的值任意整形数,无序: 要求:通过交换a,b中的元素,使[数组a元素的和]与[数组b元素的和]之间的差最小. 2. 求解思路: 当前数组a和数组 ...
- 实现pow(int x, int y),即x的y次方 ; 异或交换两个数;
问题1:实现pow(int x, int y) ,即x的y次方 x的y次方就是有y个x连续乘机,代码如下: #include <stdio.h> #include <stdlib.h ...
- C++ 系列:交换两个数字
1. 创建中间变量 这是最快也是最简单的办法,例如: #include<stdio.h> int main(){ int a=10; int b=20; int temp; printf( ...
- c语言-交换两个整数
使用c来写一个函数来实现交换两个整数. 第一种 一般的方法,引用中间变量,方便快捷. void swap(int *a, int *b) { int tmp = *a; *a = *b; *b = t ...
- 用一条UPDATE语句交换两列的值
在SQL UPDATE语句中,"="右侧的值在整个UPDATE语句中都是一致的,所有更新同时发生!因此以下语句将在没有临时变量的情况下交换两列的值: UPDATE table SE ...
- JavaScript中交换两个变量的值得三种做法(代码实现)
javascript在编程时经常会涉及到如何交换两个变量的值,例如常见的冒泡排序,快速排序等:下面我讲根据自己近期所学总结几种常见的交换两个变量值的方法: 方法一:借助第三方变量交换两个变量的值 va ...
- c语言实现交换两个数的值
C语言中要实现交换两个数的值,可以有很多种方法,具体如下所述. 不使用中间变量: // 异或, a^=b^=a^=b; a ^= b; b ^= a; a ^= b; // 加减 a = a + b; ...
随机推荐
- flutter ListView嵌套高度问题
ListView嵌套时高度无法自适应,需要设置高度才可以显示,设置以下属性可以解决上述问题 shrinkWrap: true, physics: NeverScrollableScrollPhysic ...
- 十九:jinja2之set和with语句定义变量
set jinja2模板内部可以用set定义变量,只要定义了这个变量,在后面的代码中都可以使用此变量 with 如果想让定义的变量只在部分作用域内有效,则不嫩更实用set,需使用with定义,with ...
- yum 安装docker后 无法启动
一,yum安装docker yum -y install docker 启动docker service docker start 报错: journalctl -xe Error starting ...
- 自己用canvas写的贪吃蛇代码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 临时产品id记录
id: 5095552c4fb94e01b37561fac5b20b42 cf51ceb55f5341b78592e8fead31e5c8
- Multi-Object-Edit With Django FormSets
I had to write a multi-object edit table the other day for a Django project and as such I dove into ...
- 浅谈 MySQL的预编译
之前的一篇 Mybatis中 #{}和${}的区别 中涉及到通过 SQL预编译和 #{} 传值 的方式防止SQL注入. 由此引发了想了解预编译的想法.那么什么是预编译那? 一.三个阶段: 词法和语义解 ...
- python基础--面向对象之继承
# 继承是一种创建新类的方式,新建的类可以继承一个,或者多个父类, # 父类又可以称为基类或者超类,新建的类可以称为派生类,子类 class ParentClass1: # 定义父类 1 pass c ...
- Java 注解:@PostConstruct和@PreConstruct
从Java EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解(Annotation):@PostConstruct和@PreConstruct.这两个注解被用来修饰一个非静态的 ...
- centos7成功部署OpenLDAP
目录 一.部署OpenLDAP. 1 1.安装openLDAP. 1 2.设置openldap管理员密码... 1 3.更改openldap配置... 2 4.更改监控认证配置... 2 5.设置DB ...