D

Posted 柳暗花明

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了D相关的知识,希望对你有一定的参考价值。

D - Writing a Numeral

https://atcoder.jp/contests/abc298/tasks/abc298_d

思路

双端队列, 保证执行插入和删除动作的同时,

动态计算 结果。

 

模运算

 https://www.cnblogs.com/wlw-x/p/11735614.html

Code

https://atcoder.jp/contests/abc298/submissions/40682419

#include <iomanip>
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
#include <limits.h>
#include <math.h>
#include <vector>
#include <set>
#include <map>
#include <stack>
#include <queue>

typedef long long LL;
typedef pair<int, int> pii;
typedef pair<LL, LL> pll;
typedef pair<string, string> pss;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<pii> vii;
typedef vector<LL> vl;
typedef vector<vl> vvl;

double EPS = 1e-9;
int INF = 1000000005;
long long INFF = 1000000000000000005LL;
double PI = acos(-1);
int dirx[8] =  -1, 0, 0, 1, -1, -1, 1, 1 ;
int diry[8] =  0, 1, -1, 0, -1, 1, -1, 1 ;

#ifdef TESTING
#define DEBUG fprintf(stderr, "====TESTING====\\n")
#define VALUE(x) cerr << "The value of " << #x << " is " << x << endl
#define debug(...) fprintf(stderr, __VA_ARGS__)
#else
#define DEBUG
#define VALUE(x)
#define debug(...)
#endif

#define FOR(a, b, c) for (int(a) = (b); (a) < (c); ++(a))
#define FORN(a, b, c) for (int(a) = (b); (a) <= (c); ++(a))
#define FORD(a, b, c) for (int(a) = (b); (a) >= (c); --(a))
#define FORSQ(a, b, c) for (int(a) = (b); (a) * (a) <= (c); ++(a))
#define FORC(a, b, c) for (char(a) = (b); (a) <= (c); ++(a))
#define FOREACH(a, b) for (auto&(a) : (b))
#define REP(i, n) FOR(i, 0, n)
#define REPN(i, n) FORN(i, 1, n)
#define MAX(a, b) a = max(a, b)
#define MIN(a, b) a = min(a, b)
#define SQR(x) ((LL)(x) * (x))
#define RESET(a, b) memset(a, b, sizeof(a))
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define ALL(v) v.begin(), v.end()
#define ALLA(arr, sz) arr, arr + sz
#define SIZE(v) (int)v.size()
#define SORT(v) sort(ALL(v))
#define REVERSE(v) reverse(ALL(v))
#define SORTA(arr, sz) sort(ALLA(arr, sz))
#define REVERSEA(arr, sz) reverse(ALLA(arr, sz))
#define PERMUTE next_permutation
#define TC(t) while (t--)

/******************************** COMMON FUNC START ***************************************/

LL quick_pow(LL x,LL n,LL m)
    LL res = 1;
    while(n > 0)
        if(n & 1)    res = res * x % m;
        x = x * x % m;
        n >>= 1;//相当于n=n/2.详情请参考位移运算符。
    

    return res;


inline string IntToString(LL a)

    char x[100];
    sprintf(x, "%lld", a);
    string s = x;
    return s;


inline LL StringToInt(string a)

    char x[100];
    LL res;
    strcpy(x, a.c_str());
    sscanf(x, "%lld", &res);
    return res;


inline string GetString(void)

    char x[1000005];
    scanf("%s", x);
    string s = x;
    return s;


inline string uppercase(string s)

    int n = SIZE(s);
    REP(i, n)
    if (s[i] >= \'a\' && s[i] <= \'z\')
        s[i] = s[i] - \'a\' + \'A\';
    return s;


inline string lowercase(string s)

    int n = SIZE(s);
    REP(i, n)
    if (s[i] >= \'A\' && s[i] <= \'Z\')
        s[i] = s[i] - \'A\' + \'a\';
    return s;


inline void OPEN(string s)

#ifndef TESTING
    freopen((s + ".in").c_str(), "r", stdin);
    freopen((s + ".out").c_str(), "w", stdout);
#endif


/******************************** COMMON FUNC END ***************************************/

/******************************** GRAPH START ***************************************/
// Graph class represents a directed graph
// using adjacency list representation
class Graph 
public:
    map<int, bool> visited;
    map<int, list<int> > adj;

    // function to add an edge to graph
    void addEdge(int v, int w);

    // DFS traversal of the vertices
    // reachable from v
    void DFS(int v);
;

void Graph::addEdge(int v, int w)

    adj[v].push_back(w); // Add w to v’s list.


void Graph::DFS(int v)

    // Mark the current node as visited and
    // print it
    visited[v] = true;
    cout << v << " ";

    // Recur for all the vertices adjacent
    // to this vertex
    list<int>::iterator i;
    for (i = adj[v].begin(); i != adj[v].end(); ++i)
        if (!visited[*i])
            DFS(*i);


/******************************** GRAPH END ***************************************/

/*
https://atcoder.jp/contests/abcxxx/tasks/abcxxx_d
*/

const long long base = 998244353;

long long q;

long long ans = 1;
deque<int> s;



int main()

    cin >> q;

    s.push_back(1);
    ans = 1;
    
    vector<long long> exp10 (q+5,1);
    
    for(int i=1; i<=q; i++) 
        exp10[i] = (exp10[i-1] * 10)%base;
    
    
    for(int ii=0; ii<q; ii++)
        int t;
        int d;
        
        cin >> t;
        if (t == 1)
            cin >> d;
            s.push_back(d);
            ans = (ans*10%base + d)%base;
         else if (t == 2)
            int f = s.front();
            int fpower = s.size() - 1;
            
            s.pop_front();
            
            ans = ((ans - f*exp10[fpower])%base + base)%base;
         else if (t == 3)
            cout<<ans<<endl;
        
    

    return 0;

 

laravel 日志分析

<?php

$logs = /[d{4}-d{2}-d{2} d{2}:d{2}:d{2}([+-]d{4})?].*/;

$current_log = [
            /^[(d{4}-d{2}-d{2} d{2}:d{2}:d{2}([+-]d{4})?)](?:.*?(w+).|.*?),
            : (.*?)( in .*?:[0-9]+)?$/i
        ];

$log_day=date("Y-m-d");
$file="/mnt/hgfs/CentOS7/cdn.ikuai8.com/storage/logs/laravel-2020-05-20.log";
$content=file_get_contents($file);
preg_match_all($logs, $content, $headings);



//$log_data = preg_split($logs, $content);

$levels_imgs = [
    debug => info-circle,
    info => info-circle,
    notice => info-circle,
    warning => exclamation-triangle,
    error => exclamation-triangle,
    critical => exclamation-triangle,
    alert => exclamation-triangle,
    emergency => exclamation-triangle,
    processed => info-circle,
    failed => exclamation-triangle
];


$log_info=[];
foreach ($headings as $h) {
    for ($i = 0, $j = count($h); $i < $j; $i++) {

        foreach (array_keys($levels_imgs) as $level) {
            if (strpos(strtolower($h[$i]), . . $level) || strpos(strtolower($h[$i]), $level . :)) {

                preg_match($current_log[0] . $level . $current_log[1], $h[$i], $current);
                if (!isset($current[4])) {
                    continue;
                }

                $log_info[] = array(
                    context => $current[3],
                    level => $level,
                    
                    date => $current[1],
                    text => $current[4],
                    in_file => isset($current[5]) ? $current[5] : null,
                );
            }
        }
    }
}
array_reverse($log_info);

$error_num=5;
$current_error_num=0;
foreach($log_info as $log_val){
    if($current_error_num<$error_num){
       echo "-----------------------------------------------------
";
        foreach($log_val as $_key=>$_val){
            echo "[$_key]:	".$_val."
";
        }
        $current_error_num+=1;
    }
}

 

以上是关于D的主要内容,如果未能解决你的问题,请参考以下文章

laravel 日志分析

《Web安全渗透全套教程(40集)》学习笔记 | 文d件d包d含d渗d透d原理及实验

水环境指标 中文对照

正则表达式 实现计算器

Lua中的正则表达式

markdown 计算器