您的位置:首页 > 其它

XDU-2017省赛选拔第一场

2017-04-28 09:49 197 查看
因为校赛很炸只过了3题,然后组队参加省赛选拔的要求是大1队存在4题或以上,大2队存在5题或以上,所以自己并没有组队权,所以必须抱大腿了、

打完的当天晚上就去和体育部的老铁们聚餐去了,心情比较低迷吧,然后组队什么的没去理。然后晚上问了几个人发现原来已经组好队的,这让我内心很绝望。

然后就拉了体育部一个不打算参加省选拔的但却过了4题的大腿,然后把大二一枚同样校赛炸掉但没组队的组了一发,感觉队伍还是有过线的机会,周一一起出来练了一发,感觉

还是不错的,结果练完的时候得到通知,队伍里如果有大2的那么队伍算大二队,要求有5题或以上,结果GG!这时队伍又组不了大二的,基本都组完了,此时内心很绝望,基本做好一个人打省选拔的机会了。然后在学校的群里喊了一位没组队的童鞋就参赛了,本就打算以划水的想法参加这次的选拔赛了。隔天和这名随便喊的童鞋一起试了一发cf的题,

结果第一题完全裸的迷宫题、、敲了一个多小时没把DFS敲出来,此时内心是绝望的。想着也是划水,那就随意了,放宽心态。

然后这场比赛打得很迷,很大成分我的锅。开始先扫了最后一道题,看出是DP,但不会写状态转移方程,因为自己写肯定超时,然后就跳了这一道题,此时看A题,发现题意对于我们3个菜鸡来说完全看不懂,然后又放弃了。此时一个队友说D题题意,我的天,描述非常不准确,很多细节都是我问他才再去看题目的,表示他的读题能力不太靠谱。听懂了D题题意后感觉是用二分,但是没法构造出一个自动排好序的数组(事实证明,不会或不熟练的东西就不要硬想,尽量用自己会的方法去做),然后set又不能存数量就放弃了,结果最后是用set存坐标,然后再用一个数组存数量。想了会发现没法实现,此时另外一个队友说B题挺简单,挺他说完题意我第一反应直接贪是可以过的,结果他说不行,然后我也动摇了,感觉并不是那么严谨,然后听他说他的方法,听的时候感觉是可以的,就是有一种太想当然了的感觉,结果敲完后WA两发,此时另一名随便喊的队友很给力的过了一道数学题G,此时心态比较好了,毕竟过了一题(虽然WA一发+期间排序都不会让我帮忙+不会输出小数点后几位)。

然后我用贪的方法又过了B,此时因为罚时太多在2题尾了。然后再看了一个H题的数学题,大体思路基本出来了,我和他两个人讨论太久了,一直在说话讨论,结果一直实现不出来,然后我静静的让他先别说话,2个人脑子都乱了,需要静静。然后我到旁边那草稿纸推一遍就出来了结果,样例啥的都能过,检查一遍发现没问题,然后提交一发WA。此时内心又绝望了,明明感觉没任何问题的,然后打印代码让另一位刚刚看这题的队友检查一遍,看是否有问题,我去敲一发E,感觉DFS能过结果超时了(敲之前算一算复杂度真的很重要),敲完后队友说H题没毛病啊,我把int全部改long
long 很迷的就AC了。敲的过程中让他们看C,看了一会说看不懂题意发现看不懂就没再看(据说是KMP/暴力匹配也过),然后F题目大概2页纸(其实就是裸的二叉树)。此时队友检查然后I题队友说是敲高精度模版能过,然后我看了看自己的模版,自己没敲过,啊啊啊,我好坑啊。虽然最后证明是用高精度循环+1过的,但是靠模版是超时的,总的来说还是自己的锅,题目不看完,敲了一波罚时,又偷懒觉得不敲模版就过不了不自己好好想想,讲道理自己真大坑。最后大概是在选拔线上下,今天是第二场选拔赛,希望能打好,希望能进省赛吧!!

I题手打过:

#include<iostream>
#include <stdio.h>
#include <string.h>
#include<stdlib.h>
#include <map>
#include <set>
#include <math.h>
#include <queue>
#include <algorithm>
using namespace std;
int p[1050][1050];
int min1[1050][1050];
char s1[105000];
int s2[105000];
int main(){
//freopen("in.txt","r",stdin);
int  i,j,k,l1,f1,f2,f3,f4,t4,t1,t2,t3,n,m;
int T,t;
cin >> T;
long long g1,g2,g3;
while(T--){
cin >> s1;
l1=strlen(s1);
g1=0;
for(i=0;i<l1;i++){
s2[i+1]=s1[i]-'0';
g1+=s2[i+1];
g1=g1%10+100;
}
s2[0]=0;
s2[l1]++;
t1=0;
g1=g1%10+100;
while(1){
g1++;
//cout <<s2[l1] << "   " <<g1 << endl;
for(i=l1;i>=0;i--){
if(s2[i]==10){
s2[i]=0;
s2[i-1]++;
g1=g1-9;
g1=g1%10+100;
}
}
if(g1%10!=0)
s2[l1]++;
else
break;
}
for(i=0;i<=l1;i++)
if(i!=0)
cout << s2[i];
else if(i==0&&s2[i]!=0)
cout << s2[i];
cout << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: