temp

  • 头文件
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cctype>
#include<numeric>
#include<vector>
#include<queue>
#include<map>
#include<set>
  • memset函数(vector数组不可用)
#include<cstring>

int a[100];
memset(a,0,sizeof(a));
  • memcpy函数(vector数组不可用)
#include <iostream>
#include<cstring>
using namespace std;
int main()
{
    int b[6]={2,3,1,4,6,5},a[6];
    memcpy(a,b,sizeof(b));//memcpy(a,b,6)这种写法是错误的!
    for(int i=0;i<6;i++)
    {
       cout<<a[i]<<" ";//2 3 1 4 6 5
    }
    return 0;
}

vector

  • 错误写法
vector<double> cou_aver;
cou_aver[j]+=score;
  • sort函数
//vc为vector类型
sort(vc.begin(),vc.end(),cmp);
  • 删除最后一个元素
vc.pop_back();
  • 自动求和
#include<numeric>

int sum=accumulate(vc.begin(),vc.end(),0);
    #include<algorithm>

    int arr[10]={12,4,6,8,3,1};//不要写6
    sort(arr,arr+3);//对arr的前三个元素进行排序,默认升序
    for(int i=0;i<6;i++)
    {
        cout<<arr[i]<<" ";//4 6 12 8 3 1
    }
  • 每月天数
int each[12]= {31,28,31,30,31,30,30,31,30,31,30,31};
  • 判断闰年
bool IfRun(int n)
{
    if(n%100==0)
    {
        if(n%400==0)
            return true;
    }
    else
    {
        if(n%4==0)
            return true;
    }
    return false;
}
  • 判断素数
bool isPrime(int n)
{
    if(n==1) //1不是素数
    return false;
    int sqr=(int)sqrt(1.0*n);
    for(int i=2;i<=sqr;i++)
    {
        if(n%i==0)
            return false;
    }
    return true;
}
  • 获取100以内素数,存于数组prime
#include <iostream>
#include<cstring>
using namespace std;
const int maxn=101;
int prime[maxn],pNum=0;
bool p[maxn];
void Find_Prime()
{
    for(int i=2;i<maxn;i++)
    {
        if(p[i]==false)
        {
            prime[pNum++]=i;
            for(int j=i+i;j<maxn;j+=i)
            {
                p[j]=true;
            }
        }
    }
}
int main()
{
    memset(p,false,sizeof(p));
    Find_Prime();
    for(int i=0;i<pNum;i++)
    {
        printf("%d ",prime[i]);
        //2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
    }
    return 0;
}
  • 将n进行质因数分解,结果存于fac数组
//详见算法笔记P168
#include <iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=100010;
int prime[maxn],pNum=0;
bool p[maxn];
void Find_Prime()
{
    for(int i=2; i<maxn; i++)
    {
        if(p[i]==false)
        {
            prime[pNum++]=i;
            for(int j=i+i; j<maxn; j+=i)
            {
                p[j]=true;
            }
        }
    }
}
struct factor
{
    int x;
    int cnt;
} fac[10];
int fNum=0;
void getFac(int n)
{
    int sqr=(int)sqrt(1.0*n);
    for(int i=0; i<pNum&&prime[i]<=sqr; i++)//在素数范围内查找质因数
    {
        if(n%prime[i]==0)
        {
            fac[fNum].x=prime[i];
            fac[fNum].cnt=0;
            while(n%prime[i]==0)
            {
                fac[fNum].cnt++;
                n/=prime[i];
            }
            fNum++;
        }
        if(n==1)//终点1
            break;
    }
    if(n!=1)//终点2
    {
        fac[fNum].x=n;
        fac[fNum].cnt=1;
        fNum++;
    }
}
int main()
{
    memset(p,false,sizeof(p));
    Find_Prime();
    getFac(180);
    cout<<"对于180"<<endl;
    for(int i=0; i<fNum;i++)
    {
       cout<<"质因子"<<fac[i].x<<"个数为"<<fac[i].cnt<<endl;
    }
    return 0;
}
/*
对于180
质因子2个数为2
质因子3个数为2
质因子5个数为1
*/
  • 找一个数的约数,存于divs数组
#include<iostream>
#include<cstring>
using namespace std;
int divs[100],dnum=0;
void getDiv(int n)
{
    memset(divs,0,100);
    for(int i=1; i<=n/2; i++)//是n/2,不是n
    {
        if(n%i==0)
        {
            divs[dnum]=i;
            dnum++;
        }
    }
}
int main()
{
    //这两句用于重置dnum和divs,常用于while(cin>>n){}内
    dnum=0;
    memset(divs,0,100);

    getDiv(220);
    cout<<220<<"的约数为";
    for(int j=0; j<dnum; j++)
    {
        cout<<divs[j]<<" ";
    }
    return 0;
}
//220的约数为1 2 4 5 10 11 20 22 44 55 110
//详见算法笔记P185
#include<iostream>
#include<cstring>
using namespace std;
long long C(long long n,long long m)
{
    long long ans=1;//注意
    for(long long i=1;i<=m;i++)
    {
        ans*=(n-m+i)/i;
    }
    return ans;
}
int main()
{
    cout<<C(3,2)<<endl;//3
    return 0;
}
  • cmp函数
bool cmp(cal a,cal b)
{
    if(abs(a.val)!=abs(b.val))
        return abs(a.val)>abs(b.val);
    else if(a.row!=b.row)
        return a.row>b.row;
    else
        return a.col>b.col;
  • C的合法标识符
1.首字母不能以数字开头
2.在字符串中,只能有字母,数字,下划线
  • getline格式
while(cin>>n)
    {
        char c=getchar();//getchar()不能放在for循环里面
       for(int i=0;i<n;i++)
       {
           string str;
          getline(cin,str);
          cout<<str<<endl;
       }
    }
/*3
wqe rtr
sd ioio
sdssd*/
  • 关于ASCII码

字母ASCII码

A-Z:65~90
a-z:97~122
cout<<('a'-96)*100;//100
cout<<'b'-'a'+'A'//'B'
cout<<'a'-'A'//32
cout<<'A'+32//97
cout<<char('A'+32)//a

汉字ASCII码

1.小于0
2.占两个字节//一个字母占1个字节
    cin>>str;
    for(int i=0;i<str.length();i++)
    {
        cout<<str[i]-'0'<<" ";
    }
/*输入:东风破
输出:-98 -94 -117 -136 -113 -134
*/

str[i]>=65

string str;
cin>>str;
for(int i=0;i<str.length();i++)
    {
        if(str[i]>=97&&str[i]<=122)
            cout<<"s";
        if(str[i]>=65&&str[i]<=97)
            cout<<"b";
    }
    return 0
/*输入:abcdeABCDE
输出:sssssbbbbb
*/
  • substr()
#include<iostream>
#include<string>
using namespace std;
int main()
{
    string str1,str2;
    cin>>str1>>str2;
   /*str1.substr(1)表示从第1个位置开始,截取len-1个字符
     str1.substr(1,3)表示从第1个位置开始,截取3个字符*/
    cout<<str1.substr(1)<<" "<<str2.substr(1,3)<<endl;
    return 0;
}
/*
输入:qwerty dfghjkl
输出:werty fgh
*/
  • 字符转数字
#include<iostream>
#include<string>
using namespace std;
int main()
{
    string str;
    cin>>str;
    cout<<str[2]-'0';
    return 0;
}
/*
输入:4567
输出:6
*/
  • 数字转字符串
#include<iostream>
#include<string>
using namespace std;
int main()
{
    int num;
    cin>>num;
    cout<<to_string(num).substr(3,1);//不是to_String
}
/*
输入:23412
输出:1
*/
  • 字符串转数字
#include <iostream>
#include <string>
using namespace std;
int main() {
 string str = "123";
 int a = stoi(str);
 cout << a;//123
 str = "123.44";
 double b = stod(str);//123.44
 cout << b;
 return 0;
}
  • 字符串中多个字符转数字
#include<iostream>
#include<string>
#include<cctype>>
using namespace std;
int main()
{
    string str;
    cin>>str;
    string num;
    for(int i=0;i<str.length();i++)
    {
        if(isdigit(str[i]))
            num+=str[i];
    }
    cout<<stoi(num)<<endl;
    return 0;
}
/*输入:sdasd824sdsd
输出:824
*/
  • 输入字符串

字符串带空格

 string str;
 while(getline(cin,str))
 {
     cout<<str<<endl;
 }
/*
输入:sdsd dsds
输出:sdsd dsds
*/
    cin>>n;
    char c=getchar();
    for(int i=0; i<n; i++)
    {
        string str;
        getline(cin,str);
        cout<<str<<endl;
    }
/*
输入:2
sdsd dsds
yu io io
输出:
sdsd dsds
yu io io
*/

字符串不带空格

    cin>>n;
    for(int i=0; i<n; i++)
    {
        string str;
        cin>>str;
        cout<<str<<endl;
    }
/*
输入:2
sdsddsds
yuioio
输出:
sdsddsds
yuioio
*/
  • 统计单词个数(输入数据只有一行)
#include<iostream>
#include<vector>
#include<string>
#include<stdio.h>
using namespace std;
int main()
{
    string word;
    vector<string> words;
    while(cin>>word)
    {
        words.push_back(word);
        char c=getchar();//利用getchar()判断换行
        if(c=='\n')
            break;
    }
    int size=words.size();
    cout<<size<<endl;
    return 0;
}
/*you are my friend
  4*/
  • 统计单词个数(输入数据有多行,遇到#终止)
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
    string str;
    vector<string> words;
    while(getline(cin,str))
    {
        if(str[0]=='#')
            return 0;
        int count=0;
        bool new_w=false,still=false;
        for(int i=0; i<str.length(); i++)
        {
            if(str[i]!=' '&&new_w==false&&still==false)
            {
                count++;
                new_w=true;
                still=true;
            }
            else
            {
                if(str[i]!=' ')
                {
                    still=true;
                }
                else
                {
                    still=false;
                }
                new_w=false;
            }
        }
        cout<<count<<endl;
    }
    return 0;
}
/*输入:             you              are     my  friend               */
/*输出:4              
  • if(b)
int b=1;
   if(b)
    cout<<"b is not zero"<<endl;//输出:b is not zero"
  • 最大公约数
//辗转相除法
int gcd(int m,int n)
{
    if(!n)
        return m;
    else
        return gcd(n,m%n);
}
  • 最小公倍数(基于gcd)
int lcm(int m,int n)
{ 
    int res=gcd(m,n);
    return m/res*n;
}
long long convert(string n, long long radix) {
 long long sum = 0;
 int index = 0, temp = 0;
 for (auto it = n.rbegin(); it != n.rend(); it++) {
 temp = isdigit(*it) ? *it - '0' : *it - 'a' + 10;
 sum += temp * pow(radix, index++);
 }
 return sum;
}
10^9以内,用int型
10^10及以上,用long long型

数论

  • 计算只包含加法、减法和乘法的整数表达式除以正整数n的余数,可以在每步计算之后对n取余,结果不变。
  • Lagrange 四平方定理: 任何一个正整数都可以表示成不超过四个整数的平方之和。
  • 质因子结论:对于一个正整数n来说,如果它存在[2,n]范围内的质因子,
    要么这些质因子全部小于等于sqrt(n),要么只存在一个大于sqrt(n)的质因子,而其余质因子全部小于等于sqrt(n)。

几何

  • 三角形ABC的面积

    假设向量AB=(bx,by);向量AC=(cx,cy);则S=(bxcy-cxby)/2;
    参考资料

多边形可划分为多个三角形

S=s1+s2+s3+...+sn;其中si计算方法同上

  • 按位右移运算符(>>)
将数据除以2^n(2的n次方)
    int sum=48>>3;
    cout <<sum<< endl;//6
  • 按位左移运算符(<<)
将数据乘以2^n(2的n次方)
    int sum=3<<3;
    cout <<sum<< endl;//24

while

 while(n>0)
    {
        while(num>0)
        {
            num--;
            n--;
        }
    }
    cout<<n<<endl;//-7
  • 输出从数组num中从A到B的数;
    每 10 个数字占 1 行,其间以空格分隔;
    但行末不得有多余空格。
/*
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
*/
for(int i=A-1;i<B;i++)
    {
    count++;
    count%=10;
    if(count!=0)
    {
        if(count!=1)
            cout<<" ";
        cout<<num[i];
    }
    else
        cout<<" "<<num[i]<<endl;
    }
  • 递推:找f(n)=a.f(n-1)+b.f(n-2),n大于等于4
1133、1143、1207、1249、1267、1284、1290、1297、1396、1992、1995、1996、2013、2014、2044
2045、2046、2047、2050、2064、2065、2067、2068、2070、2077、2085、2151、2154、2160、2190
2501、2512、2563、2569、2709、2716

比如2045
n=1时,f(1)=3;
n=2时,f(2)=6;
n=3时,f(3)=6;
n=4时,f(4)=18;
n=5时,f(5)=30;
则令f(n)=a.f(n-1)+b.f(n-2),易得a=1,b=6;

//2045
#include<iostream>
using namespace std;
int main()
{
    long long a[51];
    a[1]=3;
    a[2]=6;
    a[3]=6;
    for(int i=4; i<=50; i++)
    {
        a[i]=a[i-1]+a[i-2]*2;
    }
    int n;
    while(cin>>n)
    {
     cout<<a[n]<<endl;
    }
    return 0;
}

比如2046

n=1时,f(1)=1;
n=2时,f(2)=2;
n=3时,f(3)=3;
n=4时,f(4)=5;
n=5时,f(5)=8;
则令f(n)=a.f(n-1)+b.f(n-2),易得a=1,b=1;
  • 错排(2048,2049)
    错排公式:Dn=(n-1)(Dn-1+Dn-2),其中D0=0,D1=0,D2=1,D3=2,
    错排概率:Dn/n!
//2048
#include<iostream>
using namespace std;
int main()
{
    long long a[51];
    a[0]=0;a[1]=0;a[2]=1;a[3]=2;
    for(int i=4; i<=50; i++)
    {
        a[i]=(i-1)*(a[i-1]+a[i-2]);
    }
    int T;
    cin>>T;
    for(int j=0;j<T;j++)
    {
     int n;
     cin>>n;
     long long m=1;
     for(long long i=2;i<=n;i++)
     {
         m*=i;
     }
     printf("%.2f",a[n]*1.00/m*100);
     printf("%\n");
    }
    return 0;
}
  • 直线划分平面,平行线划分平面,折线划分平面(2050)
如果是N条直线分割,有M个面,则 M=1+(1+N)*N/2
如果是N对平行直线分割,有M个面,则M=1+2*N*N
如果是N条折线分割,有M个面,则M=1+2*N*N-N
  • Hash与字符
#include<iostream>
#include<string>
using namespace std;
int Hash[200];//必须是200,注意Hash必须作为全局变量,不可设于main内
int main()
{
    for(int i=0;i<26;i++)
    {
        Hash['A'+i]=i+1;
        Hash['a'+i]=-(i+1);
    }
    char c;
    int n;
    while(cin>>c>>n)
    {
        cout<<Hash[c]+n<<endl;
    }
    return 0;
}
/*
输入:A 1
输出:2
*/
  • swap函数
#include<iostream>
using namespace std;
int main()
{
    int a=1,b=2;
    swap(a,b);
    cout<<a<<b<<endl;
    return 0;
}
//输出:2 1
  • min函数
#include<iostream>
using namespace std;
int main()
{
    cout<<min(3,4)<<endl;
    return 0;
}
//输出:3
#include<iostream>
using namespace std;
int main()
{
    long long a,b,sum;
    while(scanf("%I64X%I64X",&a,&b))
    {
        sum=a+b;
        if(sum>=0)
            printf("%I64X\n",sum);
        else
            printf("-%I64X\n",-sum);
    }
    return 0;
}
/*
输入:
+A -A
1A -9
-1A -12
1A -AA
输出:
0
11
-2C
-90
*/
  • 求满足方程x(x+1)=132的解
            int x=sqrt(132);

            if((x(x+1)==132)
              cout<<x<<endl;
  • string比char数组好用的多系列
PB1076 Wifi密码 

  • 四舍五入为整数(智障vc6.0不支持)
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    int res=round(4.8);
    cout<<res<<endl;
    return 0;//5
}
  • 向上/下取整
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
   int res1=floor(5.6);
   printf("%d ",res1);

   int res2=ceil(5.6);
   printf("%d\n",res2);
   return 0;
}
/*输出:5 6*/
  • unordered_set
#include<iostream>
#include<unordered_set>
using namespace std;
int main()
{
     unordered_set<int> se;
     se.insert(2);
     se.insert(1);
     se.insert(3);
     se.insert(8);
     for(auto it=se.begin();it!=se.end();it++)
     {
         cout<<*it<<" ";//8 3 1 2
     }
}

str[i]类型判断

#include<cctype>

if(isdigit(str[i]))//str[i]为数字
if(isalpha(str[i]))//str[i]为字母(不区分大小写)
if(islower(str[i]))//str[i]为小写字母
if(isupper(str[i]))//str[i]为大写字母
  • 字符串,数组逆置
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string str="abcde";
reverse(str.begin(), str.end());
int arr[4]={2,3,1,4};
reverse(arr, arr+4);
cout<<str<<endl;//edcba
for(int i=0;i<4;i++)
{
    cout<<arr[i]<<" ";////4132
}
return 0;
}

字符串,查找子串

#include<iostream>
#include<string>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
    string str="abcdefgh";
    cout<<str.find("bc")<<endl;//1
    cout<<str.find("poi")<<endl;//4294967295,大于str.size()的一个值
    return 0;
}
  • 大整数相加
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string add(string s1, string s2) {
 string s = s1;
 int carry = 0;
 for (int i = s1.size() - 1; i >= 0; i--) {
 s[i] = (s1[i] - '0' + s2[i] - '0' + carry) % 10 + '0';//字符转数字
 carry = (s1[i] - '0' + s2[i] - '0' + carry) / 10;
 }
 if (carry > 0) s = "1" + s;
 return s;
}
int main()
{
    string A;
    cin>>A;
    string B=A;
    reverse(A.begin(),A.end());
    cout<<add(A,B)<<endl;
    return 0;
}
/*输入:9865298697593927335572439430173
输出13575648040349264629530408355862*/
  • map<string,double>初值为false
#include<map>

int main()
{
    map<string,bool> mp;
    if(mp["abc"]==false)
    cout<<"false"<<endl;//false
    return 0;
}

  • HDOJ2060(题目看不懂)
#include <cstdio>
int main()
{
    int t,n,a,b,i;
    int s[6]={7,6,5,4,3,2};
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d%d",&n,&a,&b);   
        if(n<6)
        {
            for(i=0;i<n;i++)
            {
                a+=s[i];
            }
        }   
        else
        {
            a+=(n-6)*8+27;
        }
        if(a>=b)
        printf("Yes\n");
        else
        printf("No\n");
    }
    return 0;
}
  • 插入char数组
    cin>>n>>m;

    for(int i=0; i<n; i++)
    {
        char c=getchar();
        for(int j=0; j<m; j++)
        {
            cin>>c;
            if(c=='*')
                mat[i][j]=0;
            else
                mat[i][j]=1;
        }
    }

     for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
          cout<<mat[i][j]<<" ";
        }
        cout<<endl;
    }
/*输入:5 5
.....
.*.*.
.*S*.
.***.
...T*
输出:
1 1 1 1 1
1 0 1 0 1
1 0 1 0 1
1 0 0 0 1
1 1 1 1 0*/
  • vector复制
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> v1,v2;
int main()
{
    for(int i=9; i>0; i--)
    {
        v1.push_back(i);
    }

    v2=v1;

    for(int i=0;i<v2.size();i++)
    {
        cout<<v2[i]<<" ";//9 8 7 6 5 4 3 2 1
    }

    return 0;
}
  • 一维数组复制
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    int A[3];
    int B[3];

    for(int i=0; i<3; i++)
    {
        int num;
        cin>>num;
        A[i]=num;
    }

    memcpy(B,A,sizeof(A));
    for(int i=0; i<3; i++)
    {
        cout<<B[i]<<" ";
    }
    return 0;
}
/*输入:1 2 3
输出: 1 2 3*/
  • 二维数组复制
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    int A[3][3];
    int B[3][3];

    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {
            int num;
            cin>>num;
            A[i][j]=num;
        }
    }

    memcpy(B,A,sizeof(A));
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {

            cout<<" "<<B[i][j];
        }
        cout<<endl;
    }
    return 0;
}
/*输入:1 2 3 4 5 6 7 8 9
输出: 1 2 3
      4 5 6
      7 8 9*/
  • 全局变量不要作为函数参数
#include<iostream>
using namespace std;
int n=100;
void add(int m)
{
    m++;
}
int main()
{
    add(n);
    cout<<n<<endl;//100
}
#include<iostream>
using namespace std;
int n=100;
void add()
{
    n++;
}
int main()
{
    add();
    cout<<n<<endl;//101
}

不需要它出来->局部变量(main函数内部),函数含该参数
需要它出来->设为全局变量,函数不含该参数

  • 递归函数,不同层参数传递情况
/*我们将递归函数的执行流程分为"进入本层"与"回到上层"
1.对于全局变量(禁止作为递归函数参数),
"进入本层"与"回到上层"的改变是全局的,线形的,回不去的
2.对于递归函数参数,比如第5层index=19,执行了deep(index*2),
那么在第6层index值为38,第六层结束后回到第5层index值为19*/
#include<iostream>
using namespace std;
int M=100;//M为全局变量
void deep(int index,int cnt)//index,cnt为递归函数参数
{
    if(index==2)
    {
      cnt*=10;
      M*=10;
      cout<<"进入本层,index,cnt,m值为"<<index<<" "<<cnt<<" "<<M<<endl;
      return;
    }
    deep(index*2,cnt);
     cout<<"回到上一层,,index,cnt值为"<<index<<" "<<cnt<<" "<<M<<endl;
}
int main()
{
    deep(1,1);
}
/*输出:进入本层,index,cnt,M值为2,10,1000
       回到上一层,index,cnt,M值为1,1,1*/
  • 合理的递归函数结构
void deep(int a,int b)
{
     //主要操作,包括对递归函数参数变量的读操作
    deep(a+1,b*10)//对递归函数参数变量的写操作
    //不要写任何递归函数参数变量的读/写操作
   /*vest[i][j]=*/
}
  • a的b次幂不要用pow(),精度严重不足
#include<iostream>
using namespace std;
int getPow(int a,int b)
{
    for(int i=1; i<b; i++)
    {
        a*=a;
    }
    return a;
}
int main()
{
      cout<<getPow(2,3)<<endl;//8
}

set删除元素

#include<iostream>
#include<set>
using namespace std;
int main()
{
    set<int> se;
    for(int i=1;i<=8;i++)
    {
        se.insert(i);
    }
    se.erase(6);
    for(auto it=se.begin();it!=se.end();it++)
    {
        cout<<*it<<" ";
    }
    return 0;
}
//输出:1 2 3 4 5 7 8

Dijkstra+DFS模板,见算法笔记P383,384

  • 如何生成一个随机三位数
int randnum=rand()%900+100;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,245评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,749评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,960评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,575评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,668评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,670评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,664评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,422评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,864评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,178评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,340评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,015评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,646评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,265评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,494评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,261评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,206评论 2 352

推荐阅读更多精彩内容

  • 基本概念 类( class ) 实例/对象 ( object ) 实例变量/成员变量 ( ivar, instan...
    WesleyLien阅读 453评论 0 1
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 2,753评论 0 8
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,739评论 0 10
  • 记住一切有结果的人都是次数的累积,汗水的堆积而成就的,而你现在要做的就是扎扎实实地去做每一件事情,去累积你的次数,...
    达浪Dalang阅读 151评论 0 0
  • App官方文档 运用 NSAttributedString 的场景一般有两类 titleTextAttribute...
    JaiUnChat阅读 3,564评论 0 0