ICM Technex 2017 and Codeforces Round #400 (Div. 1 +Div.2,combined)

A. A Serial Killer

谜一样的题意:每天从两个人里面选一个人杀掉然后另一个人替补,已知每天要杀掉的和代替者和第一天候选的两个人,求每天候选的两个人的名字,顺序任意。

int main()
{
string a,b,c,d;
int n;
cin>>a>>b;
cin>>n;
cout<<a<<" "<<b<<endl;
for(int i=0;i<n;i++)
{
cin>>c>>d;
if(c==a) a=d;
else if(c==b) b=d;
else if(d==a) a=c;
else if(d==b) b=c;
cout<<a<<" "<<b<<endl;
}
// cout<<a<<" "<<b<<endl;
return 0;
}

A题看了17分钟才知道了题意,随手一敲AC,然后B题已经过了尽1000个人了。

B. Sherlock and his girlfriend

题意:n串项链,每串价格依次从2-n+1。现在要个这些珍珠涂色,要求价格是另一个价格的素因子的两串颜色不能相同。求最多需要多少种颜色k,任意输出颜色c(c>=1&&c<=k)。

特判一下1和2即可,其他的都是两种情况,我们知道价格一定是连续的,那么超过2,价格至少达到4,所以这时至少需要两个颜色,我们其实可以让所有的素数是一种颜色,其余的是另一种颜色即可,这样3以上只需两种即可。

讲道理这题水的一比,思路也是秒有,但是一直到结束前7分钟才交上去AC。开始打了个素数表,写着写着突然发现除了1其余的都是2种素数和非素数,却忘了考虑2,当n=2,价格一次为2,3.他们的颜色是可以相等的,于是沙壁似的特判了1然后return,其余的先输出2,再分素数和非素数。然后开C题,题意模模糊糊的时候系统提示被Hacked。于是只能立刻回来继续debug,从开始到现在心烦意乱,我亲爱的CF啊,你为什么要放在这个时间段,你就不能放在傍晚或者凌晨吗,偏偏选在舍友都很活跃的时候,4个人农药开黑,整个宿舍激情回荡。我没法做到心无旁骛,偏偏CF又有点卡,继续交了两发都是跪在Hacked数据上,然后随便输入却发现2的时候输出的种数错了,特判一下直接交页面还没弹出来CF传来no
respones。我的那个心急啊,室友依然活跃,我分分钟提刀砍人的冲动你们造吗。down的半个小时终于交上去了,结果得分366,比A题还低100。我是习惯掉分的,可是这样掉分让我很是愤怒啊,啊,啊, ,啊,,啊,。、

void fun()
{
memset(a,-1,sizeof(a));
for(int i=2; i<N; i++)
if(a[i])
{
if(N/i<i) continue;
for(int j=i*i; j<N; j+=i)
a[j]=0;
}
}
int main()
{
fun();
//// cout<<k<<endl;
int n;
cin>>n;
if(n==1)
{
printf("1\n1\n");
return 0;
}
int ans=1;
for(int i=1;i<=n;i++)
if(a[i+1]&&(i+1)<=(n+1)/2)
{
ans++;
break;
}
cout<<ans<<endl;
for(int i=1;i<=n;i++)
if(a[i+1])
{
cout<<"1"<<" ";
}
else cout<<"2"<<" ";
return 0;
}

C. Molly's Chemicals

虽然延迟10分钟,但C题完全没思路,坐以待毙的感觉真是永生难忘啊,一腔怒火无处发泄。。。。感慨了一下ACM真是个好东西,让人激动让人伤心,让人无法自拔,多少人前赴后继。真是刺激,要是大学过的平庸无味未免有些遗憾,它让你淡泊名利,虚心前行,这段经历将会是一笔不错的人生财富。

好了补上C题。给你一个n和k,然后n个数,求有多少个区间,其和为k的幂。

不知道这题在完全冷静的状态下能不能做出来,不过感觉差不多。

我们用sum[i]表示一个前缀和,然后就是求满足 sum[i]-sum[j]=k^t。这个式子其实就是突破口,正向思维我们无法知道到底有多少[i,j]。所以我们可以反向思维,sum[i]=sum[j]+k^t。这样把k的幂全部处理出来然后一次和sum[j]累加即可,每次就是加上q[sum[i]]]。其实就是这么简单,可是在那种情况下我们大多是直接从问题入手正面寻求解答。。。

要注意的是k为-1和1的情况。。

ll  sum[N],b[N],k;
void init(ll k)
{
b[0]=1;
for(int i=1; i<65; i++)
if(b[i-1]<=INF) b[i]=b[i-1]*k;
}
int main()
{
int n;
while(~scanf("%d%I64d",&n,&k))
{
sum[0]=0;
init(k);
ll x;
map<ll,ll>q;
ll ans=0;
for(int i=1; i<=n; i++)
{
for(int j=0; j<65&&b[j]<=INF; j++)
{
if(k==1||k==-1)
{
if(k==-1) q[sum[i-1]-1]++;
q[sum[i-1]+1]++;
break;
}
else q[sum[i-1]+b[j]]++;
}
scanf("%I64d",&x);
sum[i]=sum[i-1]+x;
ans+=q[sum[i]];
}
printf("%I64d\n",ans);
}
return 0;
}

人生啊~~~~~



CodeForces contest/776 A+B+C题解的更多相关文章

  1. # Codeforces Round #529(Div.3)个人题解

    Codeforces Round #529(Div.3)个人题解 前言: 闲来无事补了前天的cf,想着最近刷题有点点怠惰,就直接一场cf一场cf的刷算了,以后的题解也都会以每场的形式写出来 A. Re ...

  2. Codeforces 547C/548E - Mike and Foam 题解

    目录 Codeforces 547C/548E - Mike and Foam 题解 前置芝士 - 容斥原理 题意 想法(口胡) 做法 程序 感谢 Codeforces 547C/548E - Mik ...

  3. Codeforces Round #557 (Div. 1) 简要题解

    Codeforces Round #557 (Div. 1) 简要题解 codeforces A. Hide and Seek 枚举起始位置\(a\),如果\(a\)未在序列中出现,则对答案有\(2\ ...

  4. Codeforces GYM 100876 J - Buying roads 题解

    Codeforces GYM 100876 J - Buying roads 题解 才不是因为有了图床来测试一下呢,哼( 题意 给你\(N\)个点,\(M\)条带权边的无向图,选出\(K\)条边,使得 ...

  5. Codeforces Round #540 (Div. 3) 部分题解

    Codeforces Round #540 (Div. 3) 题目链接:https://codeforces.com/contest/1118 题目太多啦,解释题意都花很多时间...还有事情要做,就选 ...

  6. Codeforces Round #538 (Div. 2) (A-E题解)

    Codeforces Round #538 (Div. 2) 题目链接:https://codeforces.com/contest/1114 A. Got Any Grapes? 题意: 有三个人, ...

  7. Codeforces Round #531 (Div. 3) ABCDEF题解

    Codeforces Round #531 (Div. 3) 题目总链接:https://codeforces.com/contest/1102 A. Integer Sequence Dividin ...

  8. Codeforces Round #527 (Div. 3) ABCDEF题解

    Codeforces Round #527 (Div. 3) 题解 题目总链接:https://codeforces.com/contest/1092 A. Uniform String 题意: 输入 ...

  9. Codeforces Round #499 (Div. 1)部分题解(B,C,D)

    Codeforces Round #499 (Div. 1) 这场本来想和同学一起打\(\rm virtual\ contest\)的,结果有事耽搁了,之后又陆陆续续写了些,就综合起来发一篇题解. B ...

随机推荐

  1. option标签selected="selected"属性失效的问题

    要在select标签上面加上autocomplete="off"关闭自动完成,不然浏览器每次刷新后将自动选择上一次关闭时的option,这样默认属性selected="s ...

  2. Android 实现类似于QQ空间相册的点击图片放大,再点后缩小回原来位置

    前几天看到了有人在android5.0上实现了如下图一样的效果,我自己就去搜了下.参考了国外一篇文章和国内的一篇文章,最终实现了想要的效果.具体参考的网址我已经贴到文章末尾,大家可以去英文的那个网站看 ...

  3. windows Git的安装和使用

    一.本人是根据廖雪峰大神的个人官网学习的git,并有感而发以做笔记的方式写下这篇博客,希望可以帮助到自己和其他人,廖雪峰个人官网http://www.liaoxuefeng.com/ 二.声明我的电脑 ...

  4. RSA不对称加密和公钥 私钥

    理论上只要有加密的规则 基本都是可以解密的 但是如果解密需要消耗的时间过长 比如1000年 解密过后已经没什么意义了 此时可认为这种算法不能被破解 也就是说此加密可信 MD5 是一种单向操作 加密后不 ...

  5. UVA 1220 Party at Hali-Bula (树形DP)

    求一棵数的最大独立集结点个数并判断方案是否唯一. dp[i][j]表示以i为根的子树的最大独立集,j的取值为选和不选. 决策: 当选择i时,就不能选择它的子结点. 当不选i时,它的子结点可选可不选. ...

  6. elastic-job lite 编程实战经验

    (继续贴一篇之前写的经验案例) elastic-job lite 编程实战经验 其实这是一次失败的项目,虽然最后还是做出来了,但是付出了很大代价.并且需要较深入的踩坑改造elastic-job,导致代 ...

  7. python 基础之运算符

    运算符 a=10 ,b=20 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘 ...

  8. Java调用存储过程出现Bug,sql语法错误

    因为SQL Server运行没有正常,检查了传入参数的值,发现问题,然后传入默认参数,解决了问题.

  9. Encryption-基础:MD5加密

    环境:vc2003 .h /* MD5.H - header file for MD5C.C */ /* Copyright (C) 1991-2, RSA Data Security, Inc. C ...

  10. 题解 CF440A 【Forgotten Episode】

    博客阅读更好 虽然这道题是紫题,但实际难度应该是橙题吧 首先,看到标签…… 紫题?但题目也太…… 这道题教会我们不要看标签 好了,废话少说,看到楼下许多大佬都用了数组,但我觉得可以不用 为什么? 我也 ...