zoukankan      html  css  js  c++  java
  • 洛谷【P1898】缘分计算

    我对模拟的理解:http://www.cnblogs.com/AKMer/p/9064018.html

    题目传送门:https://www.luogu.org/problemnew/show/P1898

    今天(5)(20)号,写道虐狗题爽一爽(虽然这题可能会让很多情侣分手……开玩笑的。)

    按照题意模拟,然后就A了……

    无聊的我还用这玩意儿测了测我和她……还蛮高的……

    然后机房俩基友以(520)(st)直接爆(99……emmm)

    时间复杂度:(O(n^2)(n=l*len(st)))

    空间复杂度:(O(n))

    代码如下:

    #include <cstdio>
    #include <cstring>
    using namespace std;
    
    char s[20];
    int num[50];
    int st,len,tot;
    
    int read() {
    	int x=0,f=1;char ch=getchar();
    	for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;
    	for(;ch>='0'&&ch<='9';ch=getchar())x=(x<<1)+(x<<3)+ch-'0';
    	return x*f;
    }
    
    void add(int n) {
    	int a[10],cnt=0;
    	memset(a,0,sizeof(a));
    	while(n) a[++cnt]=n%10,n/=10;
    	for(int i=cnt;i;i--) num[++tot]=a[i];//开了辅助数组a后,妈妈再也不用担心我写4个if语句了
    }
    
    int main() {
    	scanf("%s",s+1);
    	st=read();
    	len=strlen(s+1);
    	for(int i=1;i<=len;i++)
    		add(s[i]-'A'+st);//把对应字母转成数字
    	while(tot>3) {
    		for(int i=1;i<tot;i++)
    			num[i]=(num[i]+num[i+1])%10;
    		tot--;
    	}//模拟每次合并的过程
    	if(num[1]==1&&num[2]==0&&num[3]==0)puts("100");
    	else printf("%d
    ",(num[1]+num[2])%10*10+(num[2]+num[3])%10);//特判结果
    	return 0;
    }
    
  • 相关阅读:
    元组的魔法
    列表的魔法
    基础知识
    Pycharm常用快捷键
    django-debug-toolbar
    char 与 varchar 的区别
    Python试题(web篇)
    博客园样式
    网络编程部分试题
    python复习基础题目
  • 原文地址:https://www.cnblogs.com/AKMer/p/9064685.html
Copyright © 2011-2022 走看看