2018 ACM-ICPC 中国大学生程序设计竞赛暨丝绸之路程序设计竞赛
三道大水题,其它题都不会做,真是尴尬和无奈啊……
有想法,但是解决不了,感觉个人不会一些基本解法,终究还是个人学习的内容太少了
B. Goldbach
/*
数值较小,<2^63,分解的两个素数较小,其中一个小于xxx(etc. 1e5)
生成1~x的素数:O(n)
判断素数不能只用已求出的素数相除,这样结果不对。而且这个方法速度太慢。 Code largely studys from https://paste.ubuntu.com/p/JmDk43TTPB/ 米勒拉宾素数测试
https://www.cnblogs.com/cons/p/5188910.html 用unsigned long long 不明觉厉……
*/ #include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <list>
#include <stack>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <algorithm>
#include <iostream>
using namespace std;
#define ll unsigned long long
const long maxn=1e6;
//const ll mod=1e9+7; bool vis[maxn];
long sum=;
ll zhi[maxn]; //由于考虑到取模数很大 快速幂会溢出
ll add_mod(ll a,ll b,ll mod) //a*b = a*x1 + a*x2 + …
{
ll ans=;
while (b)
{
if (b & )
ans=(ans+a)%mod;
a=(a<<)%mod;
b>>=;
}
return ans;
} ll pow_mod(ll a,ll b,ll mod) //a^b =a^(b/2)*a^(b/2) *a(if b%2==1)
{
if (b>)
{
ll tmp=pow_mod(a,b>>,mod);
tmp=add_mod(tmp,tmp,mod);
if (b & )
tmp=add_mod(tmp,a,mod);
return tmp;
}
return a; // ll r=1;
// while (b)
// {
// if (b & 1)
// r=r*a%mod;
// a=a*a%mod;
// b>>=1;
// }
// return r;
} bool Miller_Rabbin(ll s,ll chu)
{
long ci=,i;
ll d=s-; //ll
while (!(d & )) //除成奇数
{
d>>=;
ci++;
}
ll k=pow_mod(chu,d,s);
if (k==) //第一个为奇数
return ;
for (i=;i<ci;i++,k=k*k%s)
if (k==s-) //以后的为偶数
return ;
return ;
} bool pan(ll s)
{
long i,g=;
ll chu[]={,,,,};
for (i=;i<g;i++)
if (s==chu[i])
return ;
for (i=;i<g;i++)
if (s%chu[i]==)
return ;
for (i=;i<g;i++)
if (!Miller_Rabbin(s,chu[i]))
return ;
return ; // if (s<maxn)
// return vis[s];
// else
// {
// long i;
// for (i=1;i<=ans;i++)
// if (s%zhi[i]==0)
// return false;
// return true;
// }
} int main()
{
long i,j,t;
ll n;
for (i=;i<maxn;i++)
vis[i]=true;
for (i=;i<maxn;i++)
{
if (vis[i])
{
sum++;
zhi[sum]=i;
}
for (j=;j<=sum;j++)
{
if (i*zhi[j]>=maxn)
break;
vis[i*zhi[j]]=false;
if (i%zhi[j]==)
break;
}
} scanf("%ld",&t);
while (t--)
{
scanf("%llu",&n);
for (i=;i<=sum;i++)
if (pan(n-zhi[i]))
{
printf("%llu %llu\n",zhi[i],n-zhi[i]);
break;
}
}
return ;
}
/*
126
146
22222222222
*/
E. Copy and Submit II
运行题目程序一遍就知道了
内存超限(没删原程序的a数组) -> 编译错误(只删了原程序的a数组,没删其它a变量) -> 运行超时(按照题目的代码用cin) -> 运行超时(scanf没用EOF) -> 正确通过
满满的泪水………………………………………………………………………………………………………………………………………………………………………
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <list>
#include <stack>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <algorithm>
#include <iostream>
using namespace std;
#define ll long long
const long maxn=1e6+;
const ll mod=1e9+; int main()
{
int n,i;
long long r,a;
while (scanf("%ld",&n)!=EOF)
{
r=;
for (i=;i<n;i++)
{
scanf("%lld",&a);
r=r*(a+)%mod;
}
printf("%lld\n",r);
}
return ;
}
I. Reversion Count
//找个样例从头到尾调试一次,查看变量
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <list>
#include <stack>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <algorithm>
#include <iostream>
using namespace std;
#define ll long long
const long maxn=1e6+;
const ll mod=1e9+; long a[],b[],n; bool pan()
{
long i;
//从高位到低位,之前写错了 ,其实无关紧要,结果能被9整除
for (i=n;i>=;i--)
if (a[i]>b[i])
return true;
else if (a[i]<b[i])
return false;
return false;
} int main()
{
long i,t,x;
char s[];
// while (scanf("%s",s)!=EOF)
while (cin>>s)
{
n=strlen(s);
for (i=;i<=n;i++)
a[i]=s[n-i]-;
for (i=;i<=n;i++)
b[i]=a[n+-i];
if (!pan())
{
for (i=;i<=n;i++)
{
t=a[i];
a[i]=b[i];
b[i]=t;
}
}
for (i=;i<=n;i++)
{
a[i]-=b[i];
if (a[i]<)
{
a[i+]--;
a[i]+=;
}
}
x=;
for (i=n;i>=;i--)
{
x=x*+a[i];
a[i]=x/;
x=x%;
}
while (n> && a[n]==)
n--;
//只使用一位数字,之前写错了
while (n> && a[n]==a[n-])
n--;
if (n==)
printf("YES\n");
else
printf("NO\n");
}
return ;
}
L. Nise-Anti-AK Problem
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <list>
#include <stack>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <algorithm>
#include <iostream>
using namespace std;
#define ll long long
const long maxn=1e6+;
const ll mod=1e9+; long a[]; int main()
{
long t,n,i;
// for (i=1;i<=100;i++)
// {
// long sum=0;
// for (int j=0;j<=i;j++)
// sum+= (i | j);
// printf("%ld\n",sum);
// } scanf("%ld",&t);
while (t--)
{
scanf("%ld",&n);
for (i=;i<=n;i++)
scanf("%ld",&a[i]);
sort(a+,a+n+);
printf("%ld\n",a[n]);
}
return ;
}
2018 ACM-ICPC 中国大学生程序设计竞赛暨丝绸之路程序设计竞赛的更多相关文章
- 2018 ACM ICPC 南京赛区 酱油记
Day 1: 早上6点起床打车去车站,似乎好久没有这么早起床过了,困到不行,在火车上睡啊睡就睡到了南京.南航离南京南站很近,地铁一站就到了,在学校里看到了体验坐直升机的活动,感觉很强.报道完之后去吃了 ...
- 2018 ACM/ICPC 南京 I题 Magic Potion
题解:最大流板题:增加两个源点,一个汇点.第一个源点到第二个源点连边,权为K,然后第一个源点再连其他点(英雄点)边权各为1,然后英雄和怪物之间按照所给连边(边权为1). 每个怪物连终点,边权为1: 参 ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛 1001 - Buy and Resell 【优先队列维护最小堆+贪心】
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6438 Buy and Resell Time Limit: 2000/1000 MS (Java/O ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛 1010 YJJ's Salesman 【离散化+树状数组维护区间最大值】
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6447 YJJ's Salesman Time Limit: 4000/2000 MS (Java/O ...
- 2014嘉杰信息杯ACM/ICPC湖南程序设计邀请赛暨第六届湘潭市程序设计竞赛
比赛链接: http://202.197.224.59/OnlineJudge2/index.php/Contest/problems/contest_id/36 题目来源: 2014嘉杰信息杯ACM ...
- 2018 ACM 国际大学生程序设计竞赛上海大都会部分题解
题目链接 2018 ACM 国际大学生程序设计竞赛上海大都会 下午午休起床被同学叫去打比赛233 然后已经过了2.5h了 先挑过得多的做了 .... A题 rand x*n 次点,每次judge一个点 ...
- 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)
2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...
- 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 F题 Clever King(最小割)
2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛 1009 - Tree and Permutation 【dfs+树上两点距离和】
Tree and Permutation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...
随机推荐
- Python文本文件的输入输出操作学习
Python具有基本的文本文件读写功能.Python的标准库提供有更丰富的读写功能. 文本文件的读写主要通过open()所构建的文件对象来实现. 创建文件对象 我们打开一个文件,并使用一个对象来表示该 ...
- [salt] jinja模板中变量使用pillar的几种方法
先转载下jinja模板中使用变量的方法,后文主要讲解pillar的变量使用方法 一.jinja模版的使用方法: 1.file状态使用template参数 - template:jinja 2.模版文件 ...
- podSpec文件相关知识整理
上一篇文章整理了我用SVN创建私有库的过程,本文将整理一下有关podSpec文件的相关知识. podSpec中spec的全称是“Specification”,说明书的意思.顾名思义,这是用来描述你这个 ...
- Thunder——Final冲刺中间产物
版本控制: http://www.cnblogs.com/lick468/p/7994015.html 软件功能说明书: http://www.cnblogs.com/szjzsd/p/7979565 ...
- 作业MathExam
MathExam233 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 600 650 • ...
- java程序设计第二次实验报告
北京电子科技学院(BESTI) 实验报告 课程:数据结构 班级:1352 姓名:何伟钦 学号:20135223 成绩: 指导教师:娄嘉鹏 实验日期: ...
- 第二阶段Sprint冲刺会议3
进展:讨论视频录制的具体功能,查看有关资料,开始着手编写有关代码.
- 网络助手之NABCD
Sunny--Code团队:刘中睿,杜晓松,郑成 我们小组这次做的软件名字叫为校园网络助手.它主要有着两项功能:网络助手与校内网盘. N--need:在学校里有时候我们就 ...
- 团队编程--MP3播放器
设计思路: 这次的作业是一个MP3播放器,它是一个团队项目.由于我们都没接触过这类的编程.刚开始的时候我们是不知道从什么地方着手的.经过我们的商量我们决定从现在市场主流的音乐播放器上找到几个主要的功能 ...
- linshi18
#include<iostream> using namespace std; int n,m,k; #define max 100 char mmap[max][max]; int mm ...