2017 ACM/ICPC Asia Regional Qingdao Online
Apple
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 982 Accepted Submission(s): 323
In the first line of each case, there are eight integers x1,y1,x2,y2,x3,y3,x,y, as described above.
The absolute values of integers in input are less than or equal to 1,000,000,000,000.
It is guaranteed that, any three of the four positions do not lie on a straight line.
-2 0 0 -2 2 0 2 -2
-2 0 0 -2 2 0 0 2
-2 0 0 -2 2 0 1 1
Rejected
Rejected
圆的反演,java大数走一波
其实用外接圆半径及点那个不复杂的东西也可以玩
import java.io.*;
import java.util.*;
import java.math.*; public class Main
{
static public BigInteger xu[]=new BigInteger[4];
static public BigInteger xd[]=new BigInteger[4];
static public BigInteger yu[]=new BigInteger[4];
static public BigInteger yd[]=new BigInteger[4];
static public void main(String[] args)
{
Scanner cin=new Scanner(System.in);
int T=cin.nextInt();
while(T-->0)
{
for(int i=0;i<4;i++)
{
xu[i]=cin.nextBigInteger();
yu[i]=cin.nextBigInteger();
xd[i]=BigInteger.ONE;
yd[i]=BigInteger.ONE;
}
for(int i=1;i<4;i++)
{
xu[i]=xu[i].subtract(xu[0]);
yu[i]=yu[i].subtract(yu[0]);
}
for(int i=1;i<4;i++)
{
xd[i]=xu[i].multiply(xu[i]).add(yu[i].multiply(yu[i]));
yd[i]=xu[i].multiply(xu[i]).add(yu[i].multiply(yu[i]));
}
BigInteger t=xu[1].multiply(yu[2]).subtract(yd[1].multiply(xd[2]));
t=t.subtract(yu[1].multiply(xu[2]).subtract(xd[1].multiply(yd[2])));
if(t.compareTo(BigInteger.ZERO)<0)
{
t=xu[1];xu[1]=xu[2];xu[2]=t;
t=yu[1];yu[1]=yu[2];yu[2]=t;
t=xd[1];xd[1]=xd[2];xd[2]=t;
t=yd[1];yd[1]=yd[2];yd[2]=t;
}
for(int i=2;i<=3;i++)
{
xu[i]=xu[i].multiply(xd[1]).subtract(xu[1].multiply(xd[i]));
xd[i]=xd[i].multiply(xd[1]);
yu[i]=yu[i].multiply(yd[1]).subtract(yu[1].multiply(yd[i]));
yd[i]=yd[i].multiply(yd[1]);
}
t=xu[3].multiply(yu[2]).subtract(yd[3].multiply(xd[2]));
t=t.subtract(yu[3].multiply(xu[2]).subtract(xd[3].multiply(yd[2])));
if(t.compareTo(BigInteger.ZERO)>=0)System.out.println("Rejected");
else System.out.println("Accepted");
}
}
}
The Dominator of Strings
Time Limit: 3000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 6778 Accepted Submission(s): 713
For each test case, the first line contains an integer N indicating the size of the set.
Each of the following N lines describes a string of the set in lowercase.
The total length of strings in each case has the limit of 100000.
The limit is 30MB for the input file.
#include<bits/stdc++.h> using namespace std;
const int MAXN = ;
int n,k;
int Paiming[MAXN+],tmp[MAXN+];
int flag;
bool comp_sa(int i, int j)
{
if(Paiming[i] != Paiming[j])
return Paiming[i] < Paiming[j];
else{
int ri = i+k <= n? Paiming[i+k] : -;
int rj = j+k <= n? Paiming[j+k] : -;
return ri < rj;
}
} void calc_sa(string &S, int *sa)
{
n = S.size();
for(int i = ; i <= n; i++)
{
sa[i] = i;
Paiming[i] = i < n ? S[i] : -;
} for( k =; k <= n; k *= )
{
sort(sa,sa+n+,comp_sa);
tmp[sa[]] = ;
for(int i = ; i <= n; i++)
{
tmp[sa[i]] = tmp[sa[i-]] + (comp_sa(sa[i-],sa[i]) ? : );
}
for(int i = ; i <= n; i++)
{
Paiming[i] = tmp[i];
}
}
} int SuffixArrayMatch(string &S, int *sa, string T)
{ int lhs = , rhs = S.size();
while(rhs - lhs > )
{
int mid = (lhs + rhs)>>;
if(S.compare(sa[mid],T.size(),T) < ) lhs = mid;
else rhs=mid;
}
return S.compare(sa[rhs],T.size(),T) == ;
}
int main()
{
int t;
ios::sync_with_stdio(false);
cin>>t;
string s[],longs;
while(t--){
int n,l=-,p=-,i;
cin>>n;
memset(Paiming,,sizeof Paiming);
memset(tmp,,sizeof tmp);
for(i=;i<n;i++){
cin>>s[i];
int len=s[i].size();
if(len>l){
l=len;
longs=s[i];
p=i;
}
}
if(n==){
cout<<longs<<endl;
continue;
}
int *sa = new int[longs.size()+];
calc_sa(longs,sa);
for(i=;i<n;i++){
if(p==i)continue;
if(!SuffixArrayMatch(longs,sa,s[i]))
break;
}
//delete [] sa;
sa = NULL;
if(i>=n){
cout<<longs<<endl;
}else {
cout<<"No"<<endl;
}
}
}
Chinese Zodiac
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 2451 Accepted Submission(s): 1645
Victoria is married to a younger man, but no one knows the real age difference between the couple. The good news is that she told us their Chinese Zodiac signs. Their years of birth in luner calendar is not the same. Here we can guess a very rough estimate of the minimum age difference between them.
If, for instance, the signs of Victoria and her husband are ox and rabbit respectively, the estimate should be 2 years. But if the signs of the couple is the same, the answer should be 12 years.
For each test case a line of two strings describes the signs of Victoria and her husband.
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
using namespace std;
int main()
{
char m[][]={
"rat", "ox", "tiger", "rabbit", "dragon", "snake", "horse", "sheep", "monkey", "rooster", "dog" , "pig"
};
int t,s;
scanf("%d",&t);
while(t--){
char p[],q[];
scanf("%s%s",&p,&q);
if(strcmp(p,q)==){
puts("");
}else {
int i,pp,qq;
for(i=;i<;i++){
if(strcmp(m[i],p)==){
pp=i;
}
if(strcmp(m[i],q)==){
qq=i;
}
}
s=(pp-qq);
if(s>){
s=s-;
}
printf("%d\n",-s);
}
}
}
Smallest Minimum Cut
Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 3297 Accepted Submission(s): 602
Each case describes a network G, and the first line contains two integers n (2≤n≤200) and m (0≤m≤1000) indicating the sizes of nodes and edges. All nodes in the network are labelled from 1 to n.
The second line contains two different integers s and t (1≤s,t≤n) corresponding to the source and sink.
Each of the next m lines contains three integers u,v and w (1≤w≤255) describing a directed edge from node u to v with capacity w.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define MAXN 2333
#define MAXM 2333333
struct Edge
{
int v,next;
ll cap;
} edge[MAXM];
int head[MAXN],pre[MAXN],cur[MAXN],level[MAXN],gap[MAXN],NV,NE,n,m,vs,vt;
void ADD(int u,int v,ll cap,ll cc=)
{
edge[NE].v=v;
edge[NE].cap=cap;
edge[NE].next=head[u];
head[u]=NE++; edge[NE].v=u;
edge[NE].cap=cc;
edge[NE].next=head[v];
head[v]=NE++;
}
ll SAP(int vs,int vt)
{
memset(pre,-,sizeof(pre));
memset(level,,sizeof(level));
memset(gap,,sizeof(gap));
for(int i=; i<=NV; i++)cur[i]=head[i];
int u=pre[vs]=vs;
ll aug=-,maxflow=;
gap[]=NV;
while(level[vs]<NV)
{
loop:
for(int &i=cur[u]; i!=-; i=edge[i].next)
{
int v=edge[i].v;
if(edge[i].cap&&level[u]==level[v]+)
{
aug==-?aug=edge[i].cap:aug=min(aug,edge[i].cap);
pre[v]=u;
u=v;
if(v==vt)
{
maxflow+=aug;
for(u=pre[u]; v!=vs; v=u,u=pre[u])
{
edge[cur[u]].cap-=aug;
edge[cur[u]^].cap+=aug;
}
aug=-;
}
goto loop;
}
}
int minlevel=NV;
for(int i=head[u]; i!=-; i=edge[i].next)
{
int v=edge[i].v;
if(edge[i].cap&&minlevel>level[v])
{
cur[u]=i;
minlevel=level[v];
}
}
if(--gap[level[u]]==)break;
level[u]=minlevel+;
gap[level[u]]++;
u=pre[u];
}
return maxflow;
} int main()
{
int T,u,v,w;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
scanf("%d%d",&vs,&vt);
NV=n,NE=;
memset(head,-,sizeof(head));
for(int i=; i<=m; i++)
{
scanf("%d%d%d",&u,&v,&w);
ADD(u,v,(ll)w*MAXM+);
}
ll ans=SAP(vs,vt);
printf("%d\n",ans%MAXM);
}
return ;
}
A Cubic number and A Cubic Number
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 4947 Accepted Submission(s): 1346
For each test case, a line contains a prime number p (2≤p≤1012).
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
bool la(LL x)
{
LL l=,r=1e6+;
while(l<=r)
{
LL mi=(l+r)/;
LL y=mi-;
if(mi*mi+y*y+mi*y==x)
return ;
else if(mi*mi+y*y+mi*y<x)
l=mi+;
else r=mi-;
}
return ;
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
LL n;
scanf("%lld",&n);
printf("%s\n",la(n)?"YES":"NO");
}
return ;
}
2017 ACM/ICPC Asia Regional Qingdao Online的更多相关文章
- HDU - 6215 2017 ACM/ICPC Asia Regional Qingdao Online J - Brute Force Sorting
Brute Force Sorting Time Limit: 1 Sec Memory Limit: 128 MB 题目连接 http://acm.hdu.edu.cn/showproblem.p ...
- 2017 ACM/ICPC Asia Regional Qingdao Online 记录
题目链接 Qingdao Problem C AC自动机还不会,暂时暴力水过. #include <bits/stdc++.h> using namespace std; #define ...
- 2017 ACM/ICPC Asia Regional Qingdao Online解题报告(部分)
HDU 6206 Apple 题意: 给出四个点的坐标(每个点的坐标值小于等于1,000,000,000,000),问最后一个点是否在前三个点组成的三角形的外接圆内,是输出Accept,否输出Reje ...
- 2017 ACM/ICPC Asia Regional Qingdao Online Solution
A : Apple 题意:给出三个点,以及另一个点,求最后一个点是否在三个点的外接圆里面,如果在或者在边界上,输出“Rejected”,否则输出"Accepted" 思路:先求一个 ...
- 2017 ACM/ICPC Asia Regional Qingdao Online - 1011 A Cubic number and A Cubic Number
2017-09-17 17:12:11 writer:pprp 找规律,质数只有是两个相邻的立方数的差才能形成,公式就是3 * n * (n + 1) +1, 判断读入的数是不是满足 这次依然只是做了 ...
- 2017 ACM/ICPC Asia Regional Qingdao Online - 1008 Chinese Zodiac
2017-09-17 13:28:04 writer:pprp 签到题:1008 Chinese Zodiac #include <iostream> #include <strin ...
- 2017 ACM/ICPC Asia Regional Qingdao Online 1003 The Dominator of Strings hdu 6208
The Dominator of Strings Time Limit: 3000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java ...
- 2016 ACM/ICPC Asia Regional Qingdao Online 1001/HDU5878 打表二分
I Count Two Three Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- HDU 5889 Barricade 【BFS+最小割 网络流】(2016 ACM/ICPC Asia Regional Qingdao Online)
Barricade Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
随机推荐
- SpringBoot 2.x (10):整合Redis
Redis部署到阿里云: 下载redis源码,编译,允许远程访问的配置 阿里云安全组设置: SSH连过去: wget http://download.redis.io/releases/redis-4 ...
- Python实现扫描作业配置自动化
持续集成平台接入扫描作业是一项繁琐而又需要细致的工作,于是趁着闲暇时间,将代码扫描作业用Python代码实现了配置自动化. 每次配置作业的过程中,都会在checkcode1或者checkcode3上 ...
- [文章泛读] The varying faces of a program transformation systems (ACM Inroads, 2012)
Beevi S. Nadera, D. Chitraprasad, and Vinod S. S. Chandra. 2012. The varying faces of a program tran ...
- python 基础之运算符
运算符 a=10 ,b=20 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘 ...
- xheditor的参数配置详解
2.2. 初始化参数列表 2.3. API函数接口列表 2.4. 上传程序开发规范 2.5. 插件开发指南 2.6. 皮肤设计指南 2.2. 初始化参数列表 初始化参数示例代码: $('#elm1') ...
- spring源码学习之容器的基本实现
最近想拿出一部分时间来学习一下spring的源码,还特意买了一本书结合来看,当然主要是学习并跟着作者的思路来踏上学习spring的源码的道路,特意在此记录一下,<spring源码深度解析> ...
- HTML5服务器发送事件(Server-Send Events)
HTML5服务器发送事件是允许获得来自服务器的更新. server-sent事件-单向传递消息,表示网页自动获取来自服务器的更新. 其中有一个重要的对象,eventsource对象是用来接收服务器发送 ...
- tableview和searchbar的适配
iOS7中,如果用UITableViewStyleGrouped的话,里面的 cell会比原来的拉长了,这样做应该是为了统一和UITableViewStylePlain风格时cell的大小一致,所以改 ...
- ios之UIWebView(1)
UIWebView可以让你创建一个网页浏览器,类似safari,而不是在程序中启动safsri哦.是不是觉得很棒呢?废话少说,切入正题. 一.创建UIWebView [java] view plain ...
- ios之UIScrollView
UIScrollView 类负责所有基于 UIKit 的滚动操作. 一.创建 [java] view plaincopy CGRect bounds = [ [ UIScreen mainSc ...