当前位置:Gxlcms > html代码 > CodeforcesRound#209(Div.2) C.PrimeNumber_html/css_WEB-ITnose

CodeforcesRound#209(Div.2) C.PrimeNumber_html/css_WEB-ITnose

时间:2021-07-01 10:21:17 帮助过:19人阅读

t题目:http://codeforces.com/problemset/problem/359/C

n多的WA................................自己的代码能力还是很有问题的.......................

总结下自己写代码的状态:
1、没有理清思路就开始写......

2、排错的时候,应该好好理理自己的逻辑,看看代码是否把自己的逻辑表达清楚

3、看别人代码的时候,别老是想着看不懂,那么你一定看不懂,理理思路,尤其模拟下,试试去理解。

4、排错的时候,不要稍微改动一点点,就重新跑一下程序,这样很花时间,基本确定没有可以改的地方了,再去跑

5、不要死盯着自己的思路,WA掉之后,跳出自己原来的思路看看,试试


GCD幂次在sum-pri[n]-sum之间,枚举次数,那个循环写的还是可以的,好好看下-------其实还是我的代码能力不行,难以用代码表达出自己想做的东西

#include #include #include #include #include #include using namespace std;#define ll long longconst ll MOD = 1000000007;const int SIZE = 1e5+10;ll num[SIZE];ll Qmod(ll base,ll n){    ll ret=1;    while(n)    {        if(n&1)          ret=ret*base%MOD;        base=base*base%MOD;        n>>=1;    }    return ret;}int main(){    ll x,sum,tmpn;    ll n;    while(scanf("%I64d%I64d",&n,&x)!=EOF)    {        scanf("%I64d",&num[1]);        sum=num[1];        for(ll i=2;i<=n;i++)        {            scanf("%I64d",&num[i]);            sum+=num[i];        }        tmpn=sum-num[n];        for(ll p=num[n],cc=0;p>0;p--)        {            while(n&&num[n]==p)            {                n--;                cc++;//1的个数            }            if(cc%x)break;            tmpn++;            cc/=x;        }        printf("%I64d\n",Qmod(x,tmpn));    }    return 0;}

人气教程排行