2018-10-01 19:51:01成功a掉
評價:普及+,提高-
思路:首先很容易想到如何判斷兩條線有交點
就是在所給的字串中找到兩個一樣的點
然後在這兩個點之間搜尋
記錄兩點之間所有點出現的次數,判斷是否為偶數即可
然而這是片面的
我們需要找兩個一樣的點也是有限制的,我們要處理一下。
同時我們在記錄交點的時候,不能單純的憑藉奇偶來判斷,要採用特殊的方法
講上面的那些廢話只是因為基本思路比較重要.......
當然**處理起來也特難受
#include
#include
#include
#include
#define size 100010
using
namespace std;
string a;
int num[30]
,start[size]
,end[size]
,pos[size]
,posn[size]
,vis[size]
;//num相當於乙個桶,用於存26個字母出現的次數
//start存區間頭,end存區間尾;
//pos和posn都存順序,具體作用**中解釋
int sign[size]
,ans;
intmain()
else
//如果這個數不是0,即找到了區間的結尾
}for
(int i=
1;i<=tot;i++
)//開始列舉每乙個區間
else
//如果之前訪問過,即前面有字母與之對應
} ans+
=sum;
//累加答案
}printf
("%d"
,ans/2)
;//因為在計算的時候回多算,所以要 /2
return0;
}//by yfengzi
#include
#include
#include
#include
#define size 100010
using
namespace std;
string a;
int num[30]
,start[size]
,end[size]
,pos[size]
,posn[size]
,vis[size]
;int sign[size]
,ans;
intmain()
else
}for
(int i=
1;i<=tot;i++
)else
} ans+
=sum;
}printf
("%d"
,ans/2)
;fclose
(stdin);
fclose
(stdout);
return0;
}
//2018-10-06 21:51:41正式切掉
//spfa就行了吧,照常求最短路,中間判斷走不走特殊道路即可
//如果要走,那走幾次最好,這在做spfa時都是可以記錄的
//設f[i][j]表示走i此通道,到達j點的值
//如果通道的數量多餘傳送的次數,那我們就可以直接做spfa,中間處理一下他的 i 就行了,對於 j 我們直接搞spfa;
//如果通道的數量少於傳送的次數,那就是裸的spfa了,因為如果傳送次數多了,那就可能造成多餘的浪費,還不如不走;
#include
#include
#include
#include
#define size 5005
using
namespace std;
bool special[size]
;int n,m,q,k,ans;
int tot,head[size]
,ver[size]
,next[size]
,edge[size]
;void
add(
int x,
int y,
int z,
bool love)
bool vis[
600]
;int f[
2001][
601]
;queue<
int> qwq;
//qwq
void
spfa1()
}}}}
}//與spfa1基本一樣,只是f的第一維全部變為0,因為我們不用傳送通道
void
spfa2()
}}}}
intmain()
for(
int i=
1;i<=q;i++)if
(q>=k)
else
return0;
}//by yfengzi
//2018-10-08 10:17:30切掉
//基礎樹形dp
//f[i]代表使以i為根的樹不連通的最小代價
//易得轉移方程
//f[i]=min(edge[i],f[j])
//即使得這棵樹與葉子結點不連通的方法有兩種
//一種是刪除與葉子節點相連的邊,即edge[i]
//一種是刪除包括這些葉子結點的子樹即 f[j]
#include
#include
#include
#define size 100010
using
namespace std;
int n,s,f[size]
;bool vis[size]
;int tot,ver[size*2]
,edge[size*2]
,head[size]
,next[size*2]
;void
add(
int x,
int y,
int z)
void
dfs(
int x)
}int
main()
dfs(s)
;printf
("%d"
,f[s]);
return0;
}//by yfengzi
//2018-10-08 11:14:10切掉
#include
#include
#include
using
namespace std;
const
long
long inf =((
1ll<<62)
-1<<1)
+1;long
long n,k,s,tt;
long
long tot1,tot2;
long
long ans=inf;
intmain()
tt=n;
while
(tt)
//統計質因子i在n!中出現的次數
ans=
min(ans,tot2/tot1);}
if(k>1)
//處理最後的乙個質因數
ans=
min(ans,tot2);}
printf
("%lld"
,ans)
;return0;
}//by yfengzi
國慶DAY1訓練
j 模擬 題意 移動數字 記錄一下每個數字的位置 然後如果和0的距離為1 則交換 include using namespace std struct node p 1020000 pos intcal int x,int y int a 1020000 intmain while m for in...
國慶集訓Day1
題意 有 n 個數 a 1,a 2,a n 有m個數 b 1,b 2,b n 令 a a 1 times a 2 times times a n 令 b b 1 times b 2 times times b n 判斷 a 是否是 b 的倍數 輸入 n,m 輸出 yes no 做法 就是個一簡單的質...
leetcode刷題之旅(day1)
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...